从父类访问子类被认为是反模式

时间:2012-10-05 05:23:50

标签: java oop design-patterns anti-patterns

E.g。

public abstract class Foo
{
    public Bar f1()
    {
        return new Bar();
    }
}

public class Bar extends Foo
{

}

从设计的角度来看,你是否同意这种设计是反模式的呢?

1 个答案:

答案 0 :(得分:1)

它之所以糟糕是因为它破坏了封装。如果有人更改Foo,他们会意识到他们可能会更改所有子类。如果有人改变Bar,他们就不应该考虑改变它的超类;无论Bar的内容如何,​​它的超类都应该一样。