The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (PHP)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Какой верный путь для получения экземпляро объектов по их типу?, Вервер (?), 11-Фев-23, (0) [смотреть все] +9

Сообщения [Сортировка по времени | RSS]


11. "Какой верный путь для получения экземпляро объектов по их типу?"  +5 +/
Сообщение от Аноним (11), 12-Фев-23, 07:01 
сделай обычный class Document. От него наследуются class Dogovor и class Pismo (еще обзови их class DoroBop и class nuCbMo, раз так фанатеешь от русских названий - сарказм на всякий случай). Класс Document при этом не должен знать о существовании своих подклассов и никак их не упоминать. Далее создай в совершенно отдельном месте функцию, которая принимает $typeFromDb и делает по нему return new КонкретныйКласс, можно через switch.
Ответить | Правка | Наверх | Cообщить модератору

13. "Какой верный путь для получения экземпляро объектов по их типу?"  +6 +/
Сообщение от Вервер (?), 12-Фев-23, 09:04 
> сделай обычный class Document. От него наследуются class Dogovor и class Pismo
> (еще обзови их class DoroBop и class nuCbMo, раз так фанатеешь
> от русских названий - сарказм на всякий случай). Класс Document при
> этом не должен знать о существовании своих подклассов и никак их
> не упоминать. Далее создай в совершенно отдельном месте функцию, которая принимает
> $typeFromDb и делает по нему return new КонкретныйКласс, можно через switch.

Если что, на самом деле эти Документы, Договора и Письма - чистая выдумка для иллюстрации. С моей текущей задачей конкретно такие сущности никак не связаны.

По поводу организации функцией, а не в родительском классе - в чём у такого подхода принципиальная выгода или "правильность"?

Ответить | Правка | Наверх | Cообщить модератору

14. "Какой верный путь для получения экземпляро объектов по их типу?"  +5 +/
Сообщение от Аноним (11), 12-Фев-23, 15:11 
> По поводу организации функцией, а не в родительском классе - в чём
> у такого подхода принципиальная выгода или "правильность"?

Класс Document не должен знать о существовании своих подклассов, т. к. это открытый класс. Я могу написать по месту ад-хок class Issue1488_Document extends Document специально для юнит-теста, и мне не придется вводить фуфловый $docType = 1488, которого в базе естессно не будет. Функция -- это пример для простейших систем без подгрузки кода по требованию. Я могу представить себе систему, в которой class LetterDocument подгружается только тогда, когда он реально нужен. В этой системе модуль "поддержки писем" зарегистрировал бы docType под номером 420 и указал бы, что "если встретишь docType = 420, то загрузи такой-то класс из такого-то файла, а я гарантирую, что это будет подкласс от Document". Похожим образом делает линукс с драйверами: встретив PCI-устройство, линукс смотрит в свой modalias на предмет того, нет ли модуля, предоставляющего драйвер для PCI-устройства с таким-то идентификатором, и если есть - загружает его.

Ответить | Правка | Наверх | Cообщить модератору

16. "Какой верный путь для получения экземпляро объектов по их типу?"  +3 +/
Сообщение от ACCA (ok), 13-Фев-23, 03:54 
Коллеги, я в растерянности. Такое впечатление, что вы вернулись к бредовым идеям самомодифицирующегося кода.

А ничё, что вас там ждёт cyclomatic complexity?

Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

17. "Какой верный путь для получения экземпляро объектов по их типу?"  +3 +/
Сообщение от Вервер (?), 13-Фев-23, 17:18 
> Коллеги, я в растерянности. Такое впечатление, что вы вернулись к бредовым идеям
> самомодифицирующегося кода.
> А ничё, что вас там ждёт cyclomatic complexity?

Уважаемый АССА, уточните пожалуйста, что вы имеет в виду? Самомодифицирующийся код - это в смысле динамическая подгрузка классов или наоборот фабрика которую я начал обсуждать?

Ответить | Правка | Наверх | Cообщить модератору

19. "Какой верный путь для получения экземпляро объектов по их типу?"  +2 +/
Сообщение от Аноним (18), 15-Фев-23, 13:59 
Самомодифицирующийся код - это когда ты на асме берёшь и меняешь инструкции своей собственной программы.
Ответить | Правка | Наверх | Cообщить модератору

22. "Какой верный путь для получения экземпляро объектов по их типу?"  +3 +/
Сообщение от Вервер (?), 15-Фев-23, 19:27 
> Самомодифицирующийся код - это когда ты на асме берёшь и меняешь инструкции
> своей собственной программы.

Ну уж читать и википедию листать я и сам умею, и всё это конечно сразу после АССА'вого коммента прочитал. Я не понял как это к обсуждению относится. Про это и спросил.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру