Суперкласс имеет ссылку на подкласс - PullRequest
0 голосов
/ 04 октября 2011

У меня есть ситуация, когда я должен поместить геттеры и сеттеры для ссылки на подкласс в суперклассе.Мне просто нужно знать, является ли это хорошей практикой или нет?

Я дал следующий код:

</p> <pre><code>public class SuperClass{ String commonProperty; private BaseClass baseClass; public void setBaseClass(BaseClass baseClass){ this.baseClass = baseClass; } public BaseClass getBaseClass(){ return this.baseClass; } } public classs BaseClass extends SuperClass{ String uncommonProperty; }

Ответы [ 3 ]

1 голос
/ 06 января 2012

Это кодовый запах , что-то не так с вашим дизайном.Как сказал @Ben, мы не знаем вашей специфики.Но так как вы задаете вопрос, я предполагаю, что вы чувствуете, что что-то неправильно.И вы правы в этом.

Чтобы повторить, подкласс наследуется от суперкласса , таким образом, благодаря фундаментальной работе ОО-языков, вам не нужновид ссылок.

0 голосов
/ 02 декабря 2011

Это не лучшая практика кодирования или проектирования, так как классу Super не нужно ничего из его подклассов, только subclasses должен знать о superclass

0 голосов
/ 04 октября 2011

В общем, это плохая практика, потому что суперкласс не должен знать, кто его расширяет.Кроме того, это ограничивает вас только одним подклассом.Вы можете использовать рефлексию, чтобы найти все подклассы, но это также, как правило, показатель плохого дизайна.

Не зная специфики, я испытываю желание думать, что вам действительно не нужно это делать.

...