在安排对象方法时(就是决定某类对象应该有那些方法), 不要把对象无关的操作强行放到对象中。特别是那种看是似是而非的操作, 不能仅仅为了图方便而放到类中。
举一个例子:
多个网卡的下EAP用户认证。那么这里就存在一个明确的对象-网卡。其次是一个不太明确的对象-EAP认证。EAP认证可以抽象为认证方法。
个人认为比较正确的设计方案是, 认证的状态数据可以保存到网卡对象中。但是认证处理流程不属于网卡的操作方法, 而是认证方法的一个部分, 所以认证处理流程的方法应该归到EAP认证方法的成员函数。
(很明显: 认证处理流程跟网卡没有关系, 即不同网卡不会影响认证流程, 换句话说就是不同的网卡走相同的认证方法处理流程, 不同的网卡不会导致走不同的代码分支)。
就好比, 文件属性一样, 操作系统可以存放不同的属性到文件中, 但是如何解析文件属性, 是其他模块的功能, 而不是文件操作自己负责解析。
阅读(784) | 评论(0) | 转发(0) |