Я разрабатываю ряд пост-фильтров для сайта WordPress, и я создал первые 4 с одним классом.
Последние два достаточно различны по объему, чтобы разделить только одну функцию (функцию для создания конечных ссылок) в своих классах.
Разумно ли в данном случае или в любом другом подобном гипотетическом случае расширить исходный класс, чтобы иметь такую функциональность, или есть лучший способ?
object-oriented
class-design
Мягкий пух
источник
источник
Ответы:
Нет, если эти два класса настолько различны, что они разделяют только одну функцию, скорее всего, они не являются взаимозаменяемыми - и, следовательно, они нарушат принцип подстановки Лискова .
Производный от базового класса, только если это логично. Совместное использование одного фрагмента кода редко является оправданием для наследования :)
В этом конкретном примере это звучит так, как будто вы хотите повторно использовать эту функцию вместо композиции ...
источник
Если в описании класса есть слово « и », его следует разбить на два (или более) класса. Судя по всему, вы можете сделать эту функцию членом другого класса, на который ссылаются те, которые у вас есть в настоящее время.
источник