架构师训练营第 1 期第二周学习总结
面向对象
万物皆对象。
面向对象三要素:封装性、继承性、多态性<核心>
面向对象设计目的:
强内聚、低耦合,从而是系统实现易扩展、更强壮、可移植、更简单
框架VS工具
框架调用应用程序代码
应用程序代码调用工具
架构师用框架来保证架构的落地
架构师用工具提高开发效率
面向对象的臭味道
僵硬:不易改变
脆弱:只想改A,结果B被意外破坏
不可移植:不能适应环境变化
导致误用的陷阱
晦涩难懂
过度设计、来回拷贝
OOD原则
开/闭原则<OCP>
对扩展开放
对更改封闭
关键是抽象
依赖倒置原则<DIP>
高层模块不能依赖底层模块,而是依赖于抽象
抽象不能依赖于实现,而是实现依赖抽象
倒置模块或包的依赖关系
开发顺序和职责
高层决定底层,高层被重用
Liskov替换原则
强调的不只是is-a的关系,而是应该结合程序上下的使用场景,看是否能用子类替换基类
组合由于继承
单一职责原则
一个模块的组成元素之间的功能相关性
将它与引起一个模块改变的作用力相联,一个类,只能有一个引起它变化的因素
接口分离原则
不应强迫客户程序依赖他们不需要的方法
可通过多继承形式来达到目的
评论