23种设计模式总结(三)

前面2节,咱们主要介绍了构建型和结构型的设计模式,今天咱们重点讲一下行为型。设计模式

策略模式设计

要点:一个策略的接口,若干个实现类,针对不一样的状况,选择不一样的策略实现来解决问题。netty

典型场景:在以前的社保项目当中,针对不一样的参保人类型,它的各类险种的计算方式会有一些不一样,多采用此种结构server

实现难度:通常对象

普遍程度:比较普遍接口

 

模板方法模式ip

要点:其实,一个称之为模板的abstract类,当中的一部分计算过程是abstract,若干个子类,针对不一样的状况,对abstract进行不一样的实现。it

典型场景:和策略模式差很少,区别在于,对于计算过程彻底不一样的场景,采用策略模式,一小部分不一样的场景,采用模板方法模式。pip

实现难度:通常模板

普遍程度:比较普遍

 

咱们其实能够把策略模式理解为一种特殊的模板方法模式,空模板。

 

观察者模式

要点:一个Observer的interface,多个Observer实现类,主题subject interface及实现类,可以动态添加删除observer,某些操做发生的时候,通知observer。

典型场景:系统发生某些时间的状况下,须要采用邮件、短信等形式通知相关干系人。

实现难度:通常

普遍程度:比较普遍

 

迭代子模式

略过,参考jdk当中集合类的iterator的使用和实现便可。

 

责任链模式

要点: 有多个对象,每一个对象持有对下一个对象的引用,这样就会造成一条链,请求在这条链上传递,直到某一对象决定处理该请求。

典型场景:netty的handler pipeline

实现难度:通常

普遍程度:比较普遍

 

命令模式

要点:一个命令的发起者(invoker),一个命令的接受者(receiver),一个是命令自己(command)。

实现难度:比较难以理解

普遍程度:反正我不多用

相关文章
相关标签/搜索