Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Чем заменить множественное наследие?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: не пойму ;)
Botkin
Отправлено: 05 Декабря, 2013 - 23:54:49
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)




Всем привет ) Помогите разобраться, как лучше организовать код в моем случае.

Есть базовый класс А. Далее классы B, C, D наследуются от него. Таких классов может быть сколько угодно много. Проблема в том, что класс А уже стал довольно толстый, и работает с несколькими сущностями. Тем не менее, все эти сущности мне нужны. Круто было бы разбить его функционал по принципу, с какой сущностью ведется работа. Т е сделать классы А1, А2, А3, от которых будет наследоваться А (он будет пустым), ну и далее наследовать от А классы B, C, D и так далее.

Может ктото подсказать изящное решение для такой ситуации?
 
 Top
DelphinPRO
Отправлено: 06 Декабря, 2013 - 00:15:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




traits ?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
caballero
Отправлено: 06 Декабря, 2013 - 00:25:09
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Может ктото подсказать изящное решение для такой ситуации?

Такие проблемы - признак неудачной архитектуры. Типично для новичков которые наследуют все что попало от всего что попало (например наследование всех классов от некоего класса DB, работающего с базой данных))

Замените половину наследования агрегацитей


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Botkin
Отправлено: 06 Декабря, 2013 - 12:33:19
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)




DelphinPRO пишет:

очень круто ) это то, что я искал.

caballero, можно обойтись простым полиморфизмом, но в моем случае это снизит гибкость и затруднит читабельность. Про агригацию почитаю )
 
 Top
caballero
Отправлено: 06 Декабря, 2013 - 12:38:28
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
можно обойтись простым полиморфизмом, но в моем случае это снизит гибкость и затруднит читабельность.

чушь


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Botkin
Отправлено: 06 Декабря, 2013 - 23:45:30
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)




caballero пишет:
чушь

не чушь
 
 Top
LIME
Отправлено: 07 Декабря, 2013 - 00:41:09
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Botkin чушь
почитай для примера Мэт Зандстра
http://rutracker[dot]org/forum/viewt[dot][dot][dot]ic.php?t=4212311
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB