Задать вопрос

Какой стиль ООП выбрать?

Приветствую всех.
Сразу оговорюсь, не уверен, что то о чем я спрашиваю называется именно стилем.
Ниже представлено 3 примера на PHP, меня интересует какая из реализаций класса для каких целей или в каком контексте предпочтительней, и является ли что-то из нижеперечисленного плохим/хорошим тоном?

$id = 1;

// пример 1
$class = new SomeClass();
$result = $class->setItem($id)->doSomething();

// пример 2
$class = new SomeClass();
$result = $class->doSomething($id);

// пример 3
$class = new SomeClass($id);
$result = $class->doSomething();
  • Вопрос задан
  • 800 просмотров
Подписаться 5 Простой 4 комментария
Ответ пользователя Vitaly К ответам на вопрос (4)
vt4a2h
@vt4a2h
Senior software engineer (C++/Qt/boost)
Вообще забудьте о дополнительном слове get -- это излишество.

1) Всё ок, метод setItem чисто теоретически может возвращать и только что добавленный айтем, тут все зависит от того, как класс используется. Я не знаю можно ли так пхп, но метод может в принципе возвращать и this или ссылку сам на себя. Что может быть использовано для реализации патерна билдер, например.

2) Плохо. Класс должен возврашать хранимый айтем, знать об его внутреннем представлении о каких-то его методах или полях ему совсем не нужно. Вернули айтем, потом у него и спрашивайте данные.

3) Третий пример я не понял. Да, в целом у класса есть какие-то данные, то да, он может их вернуть. Это не проблема.

PS То, о чём вы спрашиваете, называется OOD. К языку программирования это имеет немного отношения.
PPS В следующий раз, задавайте вопросы по какой-нибудь более конкретной модели. Пара-тройка простеньких классов, описывающих, ну там, книжную полку, напрмиер, на которую можно поставить книгу и забрать. Ваш пример слишком абстрактный.
Ответ написан
Комментировать