0
E.g.正在訪問被認爲反模式的父類的子類
public abstract class Foo
{
public Bar f1()
{
return new Bar();
}
}
和
public class Bar extends Foo
{
}
從設計上來看,你同意這樣的設計是反模式?
E.g.正在訪問被認爲反模式的父類的子類
public abstract class Foo
{
public Bar f1()
{
return new Bar();
}
}
和
public class Bar extends Foo
{
}
從設計上來看,你同意這樣的設計是反模式?
是的。
它壞的原因是因爲它破壞了封裝。如果有人改變Foo
,他們意識到他們可能會改變所有的子類。如果有人更改Bar
,他們不應該考慮改變其超類;其超級班應該工作相同,無論Bar
的內容如何。
你爲什麼要這麼做?事實上,Child類總是在父類創建後添加的。因此,在不知道哪個類是Child的情況下,您無法訪問您的子類......通常,Parent不能訪問Child的屬性。 –
是的,這可能是一個壞主意。我並不確切知道你在做什麼,但我希望有更好的辦法。 –
這不是創建工廠功能的好方法嗎?在抽象類中使用靜態函數來返回子類似乎是一個足夠體面的設計。 – Lalaland