几句话描述设计模式

一、建造者模式

 主角是建造者,产品,指挥者。主要作用是将复杂的产品(对象)构造和剥离出来。构造者组装(关联)产品,指挥者指挥(关联)构造者。

 

 

二、适配器模式

通过多继承一个新接口来扩展旧接口或者旧基类的方式达到适配效果。最好的例子就是插座,原来的基类只有两个孔的,但是怎么让他也能接上三根针的插头呢,然后让实现类继承多一个,这样就形成了有一个适配器。

 

 

三、桥接模式

这个模式和适配器很像,典型的就是三层架构BLL  ,DAL,BLL的类包含了DAL实现。

 

 

四、享元模式

主要目的和单例模式有点像,都是为了节省创建对象的次数从而达到节省时间,而享元可以有个享元工厂,他是针对某次创建的上下文实现共享,而不像单例这样全局只有一次创建。

 

 

五、观察者模式

该模式用处在于修改一个对象同时想其他对象也做相应的改变,比如一个新闻发布了,订阅这个新闻频道的人都能接收到信息。.net 事件委托可以很好的完成这个模式的建立。

 

 

六、中介者模式

这个模式和字面上的意思很像,比如买房有中介,聊天有消息转发服务器等,就是对象之间虽然会相互影响,但是不知直接通过互相引用来影响,而是注册到中介对象, 让中介类统一协调和管理。所以,这里需要改变的对象操作方法就需要调用到中介,或者中介通知中介了。

 

 

七、状态模型

一个对象可能有很多种状态,每一种状态对应的操作又因此而不同,很多时候我们会用if else来先判断对象的状态再去做相应的操作。但是如果如果我们增加一个状态的时候,每个方法都要改变一次了。所以,这时候状态就要变得充血和饱满而不是简单的枚举,把状态当成一个对象,他有自己对应的操作,每个操作需要归属对象介入。

 

八、策略模式

策略模式思想有点像状态模式,但是又有很大不同。状态模式主对象包含状态 ,而状态对应操作又引用主对象。而策略模式始终是,主对象应用策略,客户端根据不同的策略来创建主对象。相同的把不同情况的操作解耦出来。

 

九、责任链模型

审批条件就是很好的例子,每个职位审完之后都会根据具体情况要不要给上级领导审批。每个有责任的对象都包含自己上级责任的对象,根据条件判断是否要触发上级的责任处理事件。其实就是一个事件不同的角色要按顺序和条件参与进来。

 

十、访问者模式

访问者模式的主要目的是把一个对象的操作分离出来,当然类关系是需要把所谓的“访问者”包含进来,又外面的访问者进行调用。

posted @ 2018-11-22 17:23  UpOcean  阅读(257)  评论(0编辑  收藏  举报