学习总结 -week2
编程和编程语言的演变
什么是面向对象编程
第一个成功的面向对象的语言 Smalltalk 描述
万物皆对象
程序是对象的集合,它们通过发送消息来告知彼此所要做的
每个对象都有自己的由其他对象所构成的存储
每个对象都拥有其类型
某一特定类型的所有对象都可以接收同样的消息
面向对象三要素:
封装性(Encapsulation
• 隐藏实现细节(访问控制)
• 定义接口
继承性(Inheritance)
• IS-A关系
• HAS-A关系(组合)
多态性(Polymorphism
• 后期绑定(虚函数)
• 向上转形(Up Casting)
设计模式
设计模式是用于解决某一种问题的通用的解决方案。
设计模式也是语言中立的。
设计模式贯彻了设计原则。
框架和工具的区别
框架调用应用程序代码
应用程序代码调用工具
OOD原则
Open/Closed Principle
对于扩展是开放的(Open for extension)
对于更改是封闭的(Closed for modification
DIP - Dependency Inversion Principle
高层模块不能依赖低层模块,而是大家都依赖于抽象;
抽象不能依赖实现,而是实现依赖抽象。
好莱坞规则:
Don't call me, I'll call you.
Liskov 替换原则
1988年,Barbara Liskov 描述这个原则:
若对每个类型 T1 的对象 o1,都存在一个类型 T2 的对象 o2,使得在所有针对 T2 编写的程
简言之:子类型(subtype)必须能够替换掉它们的基类型(base type)。
通俗地说:子类必须要是父类类型,并且在实际运行中可以替换父类
SRP - Single Responsibility Principle
又被称为“内聚性原则(Cohesion)”,意为: 一个模块的组成元素之间的功能相关性
将它与引起一个模块改变的作用力相联,就形成了如下描述: 一个类,只能有一个引起它的变化的原因。
ISP - Interface Segregation Principle
不应该强迫客户程序依赖它们不需要的方法。
反应式编程框架flower的介绍
评论