代码改变世界

设计模式基础知识

2014-04-11 23:28  VinpleZhang  阅读(171)  评论(0编辑  收藏  举报

一、面向对象的3大特征

1.封装  隐藏实现的一些细节 ,提供一种公共的访问方式

2.继承  可以具备某些已经存在的功能

3.多态  对象在不同时刻体现的不同的状态

 

二、设计思想的区别:
抽象类:是对一组具有相同属性和方法的在逻辑上有关系的一种抽象
is  a的关系
接口:对一组具有相同的属性和方法的在逻辑上不相关的事物的一种抽象
like  a的关系

举例:
人,学生,老师

 

三、面向对象设计的基本原则

A:单一职责   系统中的每一个对象应该只有一个单独的职责,所有对象关注的应该是自身职责的完成。  

基本思想:高内聚,低耦合

B:开闭原则       一个对象对扩展开放,对修改关闭   

基本思想:对类的改动是通过增加代码进行的,而不是修改现有的代码

C:里氏替换原则     在任意父类出现的地方,都可以使用子类来替代

D:依赖注入原则  要依赖于抽象,不要依赖于具体的实现

E:接口分离原则  开发中尽量使用接口,如果依赖具体的实现类,如果实现要改,还得改实现类  不要去使用一些开发中尽量不要提供太多的行为  

基本思想:一个接口不要提供太多的行为

F:迪米特原则  一个对象对其他的对象应该尽可能少的了解  基本思想降低耦合

G:优先使用组合而不是继承原则 把大象装进冰箱:  

class  A {方法(){"打开冰箱"}

}  

class  B{

方法(){"装进大象"}

}  

class  C extends A,B{

方法(){"关闭冰箱"}

}      

class  Demo{  

new A().方法()   

new B().方法()    

new C().方法()  

}        

基本思想:在服用对象的时候,要优先考虑组合,而不是继承。因为父类的任何改变都可能直接影响子类的行为。

 

四、设计模式分类


创建型模式:创建对象
结构型模式:对象之间的组成和对象之间的关系
行为性模式:对象的行为