写点什么

架构训练营第二周学习小结

用户头像
李日盛
关注
发布于: 2020 年 10 月 31 日
架构训练营第二周学习小结

本周架构课从上世纪的软件编程危机说起,阐述了面向对象编程的兴起和面向对象设计的5个关键原则,即SOLID:



① S单一职责原则(Simgle Responsibility Principle)

  单一职责原则: 对象应该有且仅有一种单一功能。

② O开闭原则(Open Close Principle)

  开闭原则: 软件应该是对扩展是开放的,但是对于修改是关闭的。

③ L里氏替换原则(Liskov substitution Principle)

  里氏替换原则不改变程序正确性的前提下被它的子类所替换。里氏替换原则确保了开闭原则的实现。

④ I接口隔离原则(Interface Segregation Principle)

  多个特定客户端接口要好于一个宽泛用途的接口。

⑤ D依赖反转原则(Dependency Inversion Principle)

  依赖倒置原则规定:①代码应当取决于抽象概念,而不是具体实现。

           ②高层模块不应该依赖于底层模块,二者都应该依赖于抽象。

           ③抽象不应该依赖于细节,细节应该依赖于抽象。



其中,依赖倒置是框架设计的关键。这里先澄清两个概念:

  1. 框架:通常来说,框架即数据流转过程的上游和下游,通常是为了业务代码提供各种便利的。如tomcat,spring,hibernate等等,负载http请求的处理,依赖注入,数据持久化等等。从架构设计的角度来说,框架属于上层模块,业务逻辑代码属于下层模块,两者通过接口定义进行解耦。

  2. 组件:通常来说,组件属于解决某些特定问题的类,比如日期处理,文件IO,序列化转换等等。组件通常是被业务代码直接调用的。



从数据处理的流程角度来看,数据从 框架 -> 业务代码 -> 组件 流入,然后 从 组件 -> 业务代码 -> 框架 这样一个方向流出。如何将不同的代码进行合理的组合,降低软件的开发和维护成本,这就是面向对象编程要解决的问题。课程里面提到的策略模式,装饰者模式,适配器模式等等,都是着力于这一目标,避免代码腐化。



发布于: 2020 年 10 月 31 日阅读数: 25
用户头像

李日盛

关注

好架构=低成本+可实现 2018.01.22 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
整理的很好,还是建议用思维导图维护
2020 年 11 月 08 日 16:45
回复
没有更多了
架构训练营第二周学习小结