E.g。
public abstract class Foo
{
public Bar f1()
{
return new Bar();
}
}
和
public class Bar extends Foo
{
}
从设计的角度来看,你是否同意这种设计是反模式的呢?
答案 0 :(得分:1)
是
它之所以糟糕是因为它破坏了封装。如果有人更改Foo
,他们会意识到他们可能会更改所有子类。如果有人改变Bar
,他们就不应该考虑改变它的超类;无论Bar
的内容如何,它的超类都应该一样。