《类设计指南》
一.合理封装
面向对象设计(ood)之黄金准则——找出变化点,封装它
当年设计一个类时候,从一开始就用封装的思想来设计它二.基于职责设计类 每个类的职责必须要明确
设计类时,不仅隐藏数据,同时也要隐藏底层数据存储方式、算法等具体实现细节
<一个封装良好的类,不用看文档就会用,也不易被误用>。
“封装”是一种重构方法
当对老代码进行维护时,对需要这些代码进行必要的抽象与封装,以提升其可扩展性,更易于重用,这是一种重要的系统重构方式
具体实现手段:
从现有的类中抽取出接口(或者抽象基类),推动系统架构进行演化。。。
每个类只承担一项职责
Expert/Information Expert原则
某项功能需要某些必要的信息,这些信息再哪个类中,就让这个类承担这些职责。(如果这个类要实现某个功能,而这个功能的这些信息一定要归属于这个类,即处理信息和信息本身要放到一个类中)
Creator原则
这一原则要求设计者想清楚一件事:
谁负责创建对象?
Controller原则
考虑:谁负责显示数据?谁负责相应事件?谁负责处理数据?..
例如非常著名的:MVC
High Cohesion/Low Coupling
Coupling(耦合性):用于衡量对象之间依赖性的强弱
Cohesion(内聚性):用于衡量某个类所提供的外部功能及内部代码之间关联的紧密程度
在设计一个类的时候,追求“低耦合,高内聚”
【《类设计指南》】有效方法:
1.组合优先与继承
Indirection(间接性)原则
对象之间相互关联,形成了复杂的交互网络
为了减少耦合,创建一个中间对象,将多对多关联拆散为一对多关联
Pure Fabrication 原则
当某些功能不适合与归属到特定的业务逻辑相关的类时,创建一个新的类,这种机制被成为“Pure Fabrication“,就是”生造出来的类“。
Protected Variations原则
这一原则可译为”隔离变化“原则,简单说:在设计类时,应该尽量让其少受外界的影响
Polymorphism(多态性)原则
利用多态性,把变化封装到子类中
三. 区分命令与查询
推荐阅读
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 《跨界歌手》:亲情永远比爱情更有泪点
- 诗歌:|诗歌: 《让我们举起世界杯,干了!》
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- 人间词话的智慧
- 《一代诗人》37期,生活,江南j,拨动心潭的一泓秋水
- 广角叙述|广角叙述 展众生群像——试析鲁迅《示众》的展示艺术
- 书评——《小行星》