面向对象设计总结
软件设计的最终目的:“强内聚,松耦合”
易扩展
更强壮
可移植
更简单
软件设计的“Bad Smell”:
僵硬
脆弱:改一个地方,引发其他的 bug
不可移植
晦涩
重复代码
过度设计
面向对象编程三要素
封装
继承:IS-A,除了 IS-A,还需要判断是否可以替代父类使用的场景
多态:这个是面向对象编程设计的最重要一个方式
面向对象的原则:
开闭原则(Open-closed Principle):对扩展开发,对修改关闭,所以需要抽象
依赖倒置原则(Dependency-Injection Principle):
高层模块不能依赖低层模块:高层定义调用接口,低层实现
抽象不能依赖实现,实现依赖抽象
Liskov 替换原则(LSP):这个是继承需要符合的要求,子类能替换父类的使用场合;子类的契约不能比基类更严格
单一职责(SRP):一个类只有一个引起变化的原因
接口分离原则(ISP):不要让客户看到他们不需要看到的方法
什么是对象?可以进行交互的,客观存在的。
好的设计不能通过设计本身看出来,需要放到上下文环境(软件开发上下文环境)。
软件上下文环境:需求总是在不断的变更,好的设计是能够不断的适应需求的变更,这才是衡量一个设计好不好的依据。
评论