设计模式的学习

OOP的核心思想:

 

封装(Encapsulation).

继承(inheritance).

多态(polymorphism).

 

什么是类?

概念层某些责任的抽象.

规格层一系列可以被其他对象使用的接口.

语言层封装了代码和数据.

 

 

软件设计原则:

针对接口编程,而不是针对实现.

不要滥用继承,理清继承和组合的关系.

[继承处理类之间的静态关系,组合处理对象间的动态关系]

分清层次,封装变化点.

 

类设计原则:

 

单一职责原则(SRP-Single Responsibility Principle).

一个类应该只有一个引起它变化的原因.

[如果一个类既负责一个类的显示,又表示一个类的存储,当显示需求变化时或者存储变化时都要修改这同一个类. 不过, 虽然SRP要求对每一个可能变化的职责都进行分开固然是正确的,但是这个变化一定要是现实中“真的可能”发生的。我们要专注于那些有较大可能发生变化的地方,而忽略那些不太可能变化或变化概率极小的细枝末节。比如说,你的数据访问逻辑是固定的,而中途变化数据库的可能也不大,因此,就没有必要把数据访问单独出来。一句话,不能为了“Everything is possible”,就把类结构设计的异常复杂。]

 

开放封闭原则(OCP-The Open-Closed Principle).

类可以扩展,但不可修改(对扩展开放,对修改封闭)[继承,让模块依赖于一个固定的抽象体,这个抽象体是不可以修改的;同时,通过这个抽象体派生,我们就可以扩展此模块的行为功能.关键是对抽象体的定义.]

 

Liskow替换原则(LSP -Liskov Substitution Principle)

子类必须可以替换基类.

[子类必须能够完成父类定义的所有任务]

 

依赖倒置原则(DIP-Dependency-Inversion Principles).

高层模块不应该依赖低层模块,二者应该依赖于抽象.

抽象不应该依赖于实现,实现应该依赖于抽象.

 

接口隔离原则(ISP-Interface Segregation Principle ).

不应该强迫客户程序依赖于它们不用的方法,一个类对另外一个类的依赖性应当是建立在最小的接口上(不要把不相关的放在同一个接口中).

 

 

什么是设计模式

描述软件设计过程中某一类常见问题的一般性解决方案.

 模式是用来对应变化的,不要为了用模式而用模式.

 

模式分类:

创建型(creational):负责对象创建.

结构型(structural): 处理类于对象的组合.

行为型(behavioral).:类于对象交互中的职责分配.

发表评论

电子邮件地址不会被公开。 必填项已用*标注