【发布时间】:2012-02-14 20:57:38
【问题描述】:
我有一个抽象基类和两个派生类。基类包含 6 个属性,所有这些属性都可以在表单上维护。
两个派生类都有 1 个额外的属性。这两个属性也可以在同一个表单上维护。
在我的表单中,我现在有这样的代码:
btnSomething.visible = (myObject is DerivedA);
pnlPanel.visible = !(myObject is DerivedA);
if(myObject is DerivedA)
myBindingSource.DataSource = myObject as DerivedA
mySecondBindingSource = myObject;
我对这种方法不太满意,它闻起来很臭。所以我的问题是,什么是使这更加面向对象的简洁/好方法?因为未来有可能DerivedC进来……
我认为这种方法违反了 OCP 原则(可能还有其他原则)
【问题讨论】: