创建继承层次结构时,我感到困惑。抽象基类应该只包含用于继承类的常用东西。但在设计时不可能知道常用的方法,领域和属性。所以我觉得自己可以将它们与分层次继承的抽象类进行分组。这就是我在做什么而不关心哪些真正的类将在哪里成为层次结构,因为我会在综合层次结构中轻松找到一个地方。而且在层次结构中找到一些不必要的抽象类也是很有可能的。设计面向对象层次结构时的问题
但我不知道这是正确的设计方式?在非完美的抽象层次结构中会出现哪些缺点。我必须给它一个明确的例子。想象棋和棋子。如果我必须定义棋子,皇后,国王等棋子。请看下面的UML图。
我分hierarcy 2滑动件和抽象类后无-滑动片,因为我相信,滑动和无滑动会需要不同的常用成员。
但我也可以把它们定向,因为有些作品可以走8个方向,有的可4个方向,有的可以到2个或3个方向。将它们分组定向导致一些新问题。他们将在哪里等级?他们会滑下课后来吗?如果可以在滑动和非滑动组下找到四个方向分组,并且我们知道它不可能由2个类继承。所以对于这种情况我必须选择接口?如果方向不会同时存在,那么可以使用抽象类。没关系,如果我再次找到新的通用分组,这将不需要2个类继承,所以我可以在方向上定义它。
在设计结束,我所有的作品可以在层次结构完美的叶节点,这将是非常好的对未来有足够的综合楼,我也不会需要层次改变的东西。
但是可以缺点创造过大型综合性层次?
可以是在自动完成IDE中可以显示哪些迷惑他人很多不必要的和奇怪的命名抽象基类?还有什么其他的缺点?
认真吗?这看起来太复杂了。 – 2010-06-04 22:06:05