架构师训练营学习总结(第二周)
框架设计:架构师实现自己架构目标的主要手段
从编程语言的发展历史来看,早期莱布尼茨希望通过一种逻辑语言对各种事物进行描述,然后用可执行演算规则的机器进行计算,得到计算的各种结果;之后各种编程语言的出现:机器语言,每种机器都有不同的机器语言,所以需要不同的汇编语言,实现对机器(劳动工具)的抽象;非结构化语言,如basic、c, 实现对逻辑(人,劳动者)的抽象;结构化语言,如java, 使用面向对象的编程机制,实现对问题领域(劳动对象)的抽象。从编程语言的发展可以看到,编程的本质为了通过计算机来解决现实中的问题,使用的手段是抽象,通过抽象,在现实世界与“计算机世界”之间建立联系。
面向对象编程语言作为当前最先进的编程语言,具有封装、继承、多态三大特性,通过封装来隐藏实现,通过继承来重用接口,通过多态来对象互换。面向对象设计就是通过这三大特性来实现的,仅仅使用面向对象编程语言来编程是不够的,面向对象设计的目的是实现“高内聚,低耦合”,从而使得系统易扩展,更强壮、可移植、更简单。为了实现上述设计目标,就有了设计原则。
设计原则:
开闭原则(OCP):对扩展开放,对修改关闭。简单的说就是,功能的扩展,不能修改软件中的实体(类、模块、函数等)
依赖倒置原则(DIP):高层模块不依赖于低层模块,二者都依赖于抽象;抽象不依赖于具体实现,具体实现依赖于抽象,即面向接口编程,这里的接口不仅仅是Java 中interface声明的接口,还有抽象类
里氏替换原则(LSP):用基类的地方,都能用子类进行替换
单一职责原则(SRP):一个类只有一个引起它变化的原因
接口隔离原则(ISP):不让客户看到他们不需要的方法
评论