Наименование методов, view-ов....

Mendel

Гуру форума
Регистрация
27 Янв 2008
Сообщения
215
Реакции
65
Есть некий класс, ну или интерфейс реализующий шаблон Для просмотра ссылки Войди или Зарегистрируйся
У него есть пять стандартных методов:
1 - create
2 - read
3 - read
4 - update
5 - delete
Это не опечатка - 2 и 3 это read. Только один выводит всех кто удовлетворяет критерию, а второй выводит только одного.

Суть проблемы:
На данный момент 2 и 3 у меня именуются как read и read1 соответственно.
Но это криво и не интуитивно.
Есть мысли назвать как all и view, но view слово относительно универсальное, и не хочется путаницы (в контексте MVC).
Были мысли назвать list для списка, но тут сложности на уровне реализации (служебное слово).
Варианты unit, object record и т.п. тоже думал, но пока ни к одному не склонился так чтобы совсем.

Ну и попутно есть еще мысли переименовать create в add или new.
Delete в kill, update в edit или modify.....

В принципе пока я склоняюсь что crud он и есть crud и нефиг извращаться, но все равно как не крути а read у меня два выходит.....
 
Вообще есть такая вещь как перегрузка, которая в PHP реализована в виде переопределения __call, например: если используются разные параметры для readOne и readAll то можно просто проверить параметры и сделать вызов нужной функции.
пример:
PHP:
class Test
{
  function __call ($name, $args)
  {
    if($name == "read" && sizeOf($args)==1
      readOne($args)
    else readAll($args)
  }
  function readOne(){}
  function readAll(){}
}
$t = new Test();
$t->read("arfds");
$t->read("sgfsdf","asdf");
Не помню, в PHP есть sizeOf(), если нет, то все равно можно найти альтернативу
 
В таких случаях я поступаю:
1. делаю разные методы... так удобней и понятней для других...
Например:

public function read()
public function read_all()

2. ставлю метки
Пример:

PHP:
public function read($id = null) {
    if( $id === null ) {
        return все записи;
    }
 
    return запись с $id;
}

но второй вариант использую очень редко...
код должен быть понятен другим программерам.
 
Назад
Сверху