OOD沉思录 之 导引
发布时间:2020-05-23 12:14:57 所属栏目:程序设计 来源:互联网
导读:OOD沉思录 之 导引 一个对象一定会有如下4个属性: 1,它的身份标示,可能只是它在内存中的地址; 2,它的类的属性(通常是静态属性)和这些属性的值(通常是动态的); 3,它的类的行为(从实现者的角度看); 3,它的公开接口(从用户的角度看). 2.1 所有数据都应该隐藏在它
|
OOD沉思录 之 导引 2.1 所有数据都应该隐藏在它所在的类内部. 房子可以依赖闹钟,但是闹钟不能依赖房子,否则这个闹钟就不能放到别的地方了 2.3,尽量减少类的的方法的数量 几年前,部分人所提倡的原则与此正好相反,他们认为凡是能想到的,将来用户可能都能用上. 那么既然如此,那么你一定喜欢我的链表类,它的公共接口有4000个.(这里我第一次大笑) 2.4, 实现所有类都能理解的最基本公共接口 如:拷贝操作(深拷贝和浅拷贝),相等性判断,正确输出内容(打印),从字符串解析等 2.5,不要把实现细节放到类的公共接口 目的是降低使用者的复杂度 2.6,用户不感兴趣的或无法使用的内容不要放到类的公共接口 与2.5类似的 2.7,类之间应该零耦合,或者只有导出耦合关系. 即:一个类要么同另一个类豪无关系,要么只使用另一个类的公共接口中的操作. 低耦合,高内聚原则 耦合:衡量两个类之间的关系. 类聚:衡量类的实现,高类聚的最理想状态是:类的所有方法都使用了其所有字段或属性,不存在一半方法使用了这一半属性或字段,而另一半方法使用了另外一半的属性或字段. 如果是这样,那这个类本身就应该被劈开为两个类. 2.8,类应当只表示一个关键抽象,反之亦然. 如果一个关键抽象被表示为多个类,则表明设计者把这个关键抽象的每个功能表示为一个类了. 反之,表明这个类表示了多个关键抽象,导致庞大复杂的类,还不好用(因为每次使用都牵扯到两个关键抽象概念) 2.9,把相关的数据和行为集中放置 否则为了满足单一的需求变更,而不得不在两个或更多的地方进行修改 2.10,把不相关的信息放到另一个类中 高类聚的原则 2.11,确保抽象的是类,而不是对象 "父亲"和"母亲"是不是类,还是某个"人"的对象?要看具体应用是否区分了这两者,如果没有区分,则表示的是对象,否则就是类. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
