架构师训练营第 1 期第二周学习总结

用户头像
郑凯元
关注
发布于: 2020 年 09 月 27 日

面向对象

万物皆对象。

面向对象三要素:封装性、继承性、多态性<核心>

面向对象设计目的:

强内聚、低耦合,从而是系统实现易扩展、更强壮、可移植、更简单

框架VS工具

框架调用应用程序代码

应用程序代码调用工具

架构师用框架来保证架构的落地

架构师用工具提高开发效率



面向对象的臭味道

  • 僵硬:不易改变

  • 脆弱:只想改A,结果B被意外破坏

  • 不可移植:不能适应环境变化

  • 导致误用的陷阱

  • 晦涩难懂

  • 过度设计、来回拷贝



OOD原则

开/闭原则<OCP>
  • 对扩展开放

  • 对更改封闭

关键是抽象



依赖倒置原则<DIP>
  • 高层模块不能依赖底层模块,而是依赖于抽象

  • 抽象不能依赖于实现,而是实现依赖抽象



倒置模块或包的依赖关系

开发顺序和职责

高层决定底层,高层被重用



Liskov替换原则

强调的不只是is-a的关系,而是应该结合程序上下的使用场景,看是否能用子类替换基类

组合由于继承



单一职责原则
  • 一个模块的组成元素之间的功能相关性

  • 将它与引起一个模块改变的作用力相联,一个类,只能有一个引起它变化的因素



接口分离原则

不应强迫客户程序依赖他们不需要的方法

可通过多继承形式来达到目的



用户头像

郑凯元

关注

还未添加个人签名 2018.04.28 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第 1 期第二周学习总结