Oop 我应该在什么级别进行检查?
我设计了一个新类,它在每个抽象级别上都包含相同的函数Oop 我应该在什么级别进行检查?,oop,Oop,我设计了一个新类,它在每个抽象级别上都包含相同的函数boolean isCellEmpty()。我的类层次结构的底部有矩阵类。在顶部我有图形主窗口类 我应该在哪里进行检查(例如,如果(I>=0,I=0等等…)?简单的答案是:在最通用的级别上。声明这些变量的第一个可继承类应该执行检查。除非需要重写功能,否则下面的任何内容都应该服从于超类。在继承层次结构的更高一级的类中,从您选择用于检查的类开始,处理检查的方法可能会通知尚未实现重写版本的子类,它们正在获得默认(可能是无用的)行为。在这种情况下,我经
boolean isCellEmpty()
。我的类层次结构的底部有矩阵
类。在顶部我有图形主窗口
类
我应该在哪里进行检查(例如,如果(I>=0,I
有一些例外情况。例如,如果错误是通过保存应用程序的消息报告的,并且您预期在最低级别会发生许多错误。但是这些错误并不常见,如果您觉得上述规则会干扰您,您可以改变规则。简单地说,您有以下类图:
Matrix ( a
^ ^
| |
... b means : b inherits a)
^
|
图形主窗口
您有一个方法isCellEmpty
,它可以在基类和每个继承的类中找到。
如果isCellEmpty
用于执行其检查的数据的数据结构自Matrix
类以来没有更改,则可以在最通用的Matrix
类中执行这些操作
如果您更改了自矩阵以来的数据结构,您应该在更改数据结构的类中实现测试
问候谢谢你的回答!但我很抱歉,当我描述我的层次结构时,我不是说继承了
关系。我的意思是GraphMainWindow
使用Graph
,使用GraphModel
,这是MatrixGraphModel
的超类,使用MatrixGraphModel
,它使用矩阵,它使用“cell”在整个层次结构中表示相同的东西吗?isCellEmpty()
测试相同的东西吗?有点不同的目的。但一般来说是这样的。(在所有层次结构中,我都进行相同的检查。)在这种情况下,在方法开始有意义的地方实现方法。另外,使用不同的方法名称使含义更清楚。