您的位置:首页 > 其它

24种设计模式的简单理解

2017-04-04 17:49 323 查看

1.简单工厂模式

面对的问题:在创建多个实例时,如果有if...else...语句的话,不但使源代码显得冗长,而且如果增加实例,必须修改if else 代码,造成扩展和修改不灵活,

解决的方法:将构造实例的任务交给一个工厂类来完成,根据传入的不同值来构造不同的实例。

2.工厂方法模式

面对的问题:简单工厂模式是将创建实例的代码写到了一个工厂类中,导致了工厂类职责过多,如果增加或者减少实例时,就需要修改工厂类,违背了开闭原则。

解决方法:所有的工厂方法都继承一个抽象的工厂类,如果增加实例的话,增加一个具体工厂类就行。通过修改配置文件来控制生成的具体工厂方法,来生成实例。

3.抽象工厂模式

面对的问题:工厂方法中,一个工厂只能得到一个对象,为了使一个工厂能得到多个对象,

解决方法:在抽象工厂和具体工厂中增加多个方法来得到多个对象,将生成的对象也进行抽象,建立抽象类,

4.建造者模式

解决的问题:为了将部件和组装过程分开,

5.原型模式

解决的问题:快速的多次创建同一个对象,

6.单例模式

解决的问题:一个系统中只能有且只有一个某个类的实例

解决方法:创建静态的方法来返回唯一实例,

7.适配器模式

解决的问题:原本由于接口不兼容而不能一起工作的那些类可以在一起工作

解决方法:建立适配器类来完成接口的相互调用

8.桥接模式

为了将抽象部分与实现部分分离,将类进行抽象化,用抽象化的来,之后再根据需要来实例需要的实现类

9.组合模式

将多个对象组合成一个树形结构,定义一个抽象的控件类,具有叶子和容器的所有功能,叶子和容器都继承于它,都过设置容器里包含的控件来实现将多个对象组合成树形,

10.装饰模式

为了动态的给一个对象增加额外的方法,通过 继承和关联 对一个对象附加功能,

11.外观模式

对系统的访问 通过一个统一的一个外观对象,是系统更容易使用,

12.享元模式

通过共享技术来减少对象的重复创建,是系统对对象进行服用,减少系统的开销,提高性能,将对象写入哈希表中,从哈希表中得到对象,以实现重复使用对象的目的

13.代理模式

一个对象可以直接引用一个对象,为了使添加方法方便,现在通过调用使用代理类来间接的调用对象

14.职责链模式

避免请求发送者与接收者耦合在一起,将对象连接成为一条链,请求沿着这条链传递,直到有对象处理它为止。

15.命令模式

将一个请求封装为一个对象(即我们创建的Command对象),从而使你可用不同的请求对客户进行参数化; 对请求排队或记录请求日志,以及支持可撤销的操作。

16.解释器模式

给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。

17.迭代器模式

类提供一个方法来访问聚合对象,不用暴露对象的信息,来遍历对象,

18.中介者模式

通过一个中介者对象来完成多个对象之间的交互,

19.备忘录模式

储存对象的历史状态,以备恢复对象的状态

20.观察者模式

当一个对象发生变化是另一个对象也要发生变化,用观察者来观察对象的变化来通知另一个对象更新

21.状态模式

对象可以拥有多个状态 通过改变类来实现状态的变化

22.策略模式

将每个算法封装起来,使他们可以互换

23.模板方法模式

定义一个算法的骨架,具体的实现在子类中完成,

24.访问者模式

封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: