码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式

时间:2017-09-24 21:24:57      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:解释器   状态改变   span   切换   调停者模式   manager   职责   计算   需要   

可以看看这个

http://www.cnblogs.com/francfu/p/design-pattern-notes.html

http://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html

a.创建型

1.简单工厂

优点:客户端不再负责对象的创建,而是把创建的责任丢给了具体的工厂类,客户端只负责对对象的调用,明确各个类的职责。 
缺点:工厂使用静态方法来创建对象导致静态方法无法被继承。另外这个工厂类负责所有对象的创建,当具体产品不断增多需要不断修改工厂类增加相应判断逻辑不利于后期维护。

PS:适合 创建具体对象比较少的情况, 如果对象过多的话,还有添加创建工程的类

2.工厂方法模式

PS:一个大工厂变成小工厂,每个工厂都有继承的方法和自己的方法

工厂方法模式简单工厂模式基础上继续进行职责的分配和包装。每一个产品都由一个具体的工厂来创建,把简单工厂模式中庞大的工厂类拆成一个个小的工厂类。每个具体的小工厂负责单独对象的创建,职责变小。

类图: 
技术分享 
技术分享

优点:如果有新的产品进入只需要新增一个创建产品工厂类和具体的产品类即可,不会影响到原来代码,增强系统拓展性。 
缺点:需编写额外代码,增加了工作量。

 

简单工厂模式可以看作工厂模式的一个特例,单例模式就是创建后只能有一个实例。找盖房子的建筑商就相当于使用了创建者模式;找生产砖头的工厂就相当于使用了工厂模式;找配钥匙的师傅就相当于使用原型模式

创建者模式抽象工厂模式的区别在于抽象工厂模式针对更细微的产品而创建,并且创建后产品的组装并不复杂。而创建者模式则是针对级别比较大的产品而创建,而且要创建产品的内部组装非常复杂。

----------------结构性------------------------

1.外观模式:

比如一台计算机启动,计算机在最外面,然后其他cpu,风扇都封装起来。只暴漏电脑启动方法,其他都含在内

 优点:通过统一对外接口访问系统,避免了外部系统和子系统之间的直接联系从而降低了系统间的依赖和复杂度。 
缺点:限制了外部系统对子系统的灵活调用。

 

2.适配器模式: 可以是系统接口和本来两个互不相容的另一个系统连接起来。

 

3.代理模式:Spring中aop

 

4.装饰者模式:在一个类基础上再继承 一个类就是装饰者模式了

 

5.桥接模式:

桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。我们来看看关系图:

 

6.组合模式: 比继承好一些。类似于二叉树

 

7.享元模式:String

=================行为========================

1.模板模式 :  Spring jdbcTempleate 执行的过程

 

2.观察者模式: 订阅和发布

 

3.状态模式:

核心思想就是:当对象的状态改变时,同时改变其行为,很好理解!就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作,而且你的好友也能看到你的状态,所以,状态模式就两点:1、可以通过改变状态来获得不同的行为。2、你的好友能同时看到你的变化。看图:

 

4.策略模式:不同方法执行不同的计算模式

 

5.责任链:看病

 

6.命令模式: 做饭

 

7.访问者模式:

不同的东西,不同价格

 

8.调停者模式:

 

9.备忘录模式

 

10.迭代器模式

 

11.解释器模式

 

设计模式

标签:解释器   状态改变   span   切换   调停者模式   manager   职责   计算   需要   

原文地址:http://www.cnblogs.com/bee-home/p/7588671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!