Week2- 总结
面向对象设计的目的
高内聚: 相关度高的功能应该放在一起,尽可能的集中,不要分离。
低藕合: 模块间把依赖部分降低到最低,关联太多容易造成牵一发而动全身。
从而使系统
更强壮:不容易让被破坏
易扩展:更容易增加新功能
可移植:能够在多样的环境下运行
更简单:容易理解,容易维护
不好的设计一般具有如下设计
僵硬:不容易改变
脆弱:只想改A,结果B被破坏
不可移植:不能适应环境的变化
导致误用的陷阱:引诱程序员破坏原有的设计
晦涩:代码难以理解
过度设计:
设计原则
OCP:不需要修改软件实体(类,模块,函数)就能实现增加功能。
对扩展开放
对修改封闭
DIP:高层模块不应该依赖低层,大家应该依赖抽象。抽象不应该依赖实现,而是实现依赖抽象。
倒置了什么:模块和包的依赖;开发顺序和职责(由上层或调用来定义接口)。
好莱坞原则:程序不应该调用框架,应按规范进行扩展,由框架调用扩展。
LSP: 一个正确的继承应符合
当选择扩展的时候应该尽量使用组合,而不是继承。
SRP: 内聚性原则
ISP: 不应该让客户程序依赖他们不需要的方法。
评论