теоретический вопрос ООП

программирование php ООП

Есть две сущности, которые я описал двумя разными классами. Через некоторое время обнаружилось, что некоторые свойства и методы у этих двух классов одинаковые. Некоторые источники говорят, что по-хорошему надо сделать некоторый базовый класс и его расширить двумя подклассами, чтобы избежать дублирования кода в одинаковых методах. Но вот вопрос, одинаковых методов и свойство буквально единицы (1-3) в то время как разных с десяток. Имеет ли смысл делать базовый и два дочерних или оставить два разных класса в ущерб дублирования (и последующий синхронизации)? Каков порог разности? Если допустим соотношение и разница одинаковых и разных (свойств и методов) будет возрастать.
Ответы:
Есть смысл  создание базового класса, если количество этих сущностей будет возростать
Нет никакого порога, если объекты похожи по смыслу, пусть у них даже изначально совершенно разные свойства, их следует наследовать от одного предка.
главное логика. если функции логически "базовые", значит надо делать общего родителя
например есть у вас два класса работы в БД, один реализует обычные функции DAO, второй фукнции ActiveRecords, по сути ито, ито бд, есть общие свойства\методы, например префиксы таблиц, их выносим в базовый класс
Сделай один базовый класс пусть в нем хотя бы будут 2 метода (если тебе это режет глаз). И посмотри если это так лучше (сохрани бэк-ап на случай если не понравится). Критерий он именно такой: если тебе как программисту это режет глаз, ты должен сделать как тебе кажется лучше (в большинстве случаев это да будет лучше - или ты прийдешь к какому-то существенному выводу - что и как и где и когда наследовать итп).
1)  Если сущности связанны логически, то объединяйте
2) Если сущности логически не связанны,а методы дублировать неохотно, и хочется побыть первопроходцем то вас могут заинтересовать трейты http://php.net/manual/ru/language.oop5.traits.php


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.