java经典设计模式(3):十一种行为型模式(附实例和详解)-java开发java经验技巧

java经典设计模式(3):十一种行为型模式(附实例和详解)-java开发java经验技巧

ID:30769057

大小:216.80 KB

页数:25页

时间:2019-01-03

java经典设计模式(3):十一种行为型模式(附实例和详解)-java开发java经验技巧_第1页
java经典设计模式(3):十一种行为型模式(附实例和详解)-java开发java经验技巧_第2页
java经典设计模式(3):十一种行为型模式(附实例和详解)-java开发java经验技巧_第3页
java经典设计模式(3):十一种行为型模式(附实例和详解)-java开发java经验技巧_第4页
java经典设计模式(3):十一种行为型模式(附实例和详解)-java开发java经验技巧_第5页
资源描述:

《java经典设计模式(3):十一种行为型模式(附实例和详解)-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、hva经典设计模式(3):I—种行为型模式(附实例和详解)-编程开发技术Java经典设计模式(3):十一种行为型模式(附实例和详解)原文出处:小宝鹄Java经典设计模式共冇21屮,分为三大类:创建型模式(5种)、结构型模式(7利

2、)和行为型模式(11利

3、)。木文主耍讲行为型模式,创建型模式和结构型模式可以看博主的另外两篇文章:Java经典设计模式之五大创建型模式(附实例和详解)、?Java经典设计模式之七大结构型模式(附实例和详解)。行为型模式细分为如下11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。第一

4、类父类与子类(1)策略模式第二类两个类之间(3)观察者模式第三类类的状态(7)备忘录模式第四类通过中间类⑼访问者模式(2)模板方法模式(4)迭代子模式(8)状态模式(10)中介者模式(5)责任链模式(11)解释器模式(6)命令模式接下来对11种行为型模式逐个进行介绍。一、策略模式策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可冇可无,屈于辅助类,视实际需求是否添加),提供辅助函数。首先统一接口:packagecom.model,behaviour;

5、publicinterfaceICalculator{publicintcalculate(Stringexp);}辅助类:packagecom.model,behaviour;publicabstractclassAbstractcalculator{publicint[]split(Stringexp,Stringopt){Stringarray[]=exp.split(opt);intarraylnt[]=newint[2];arraylnt[0]二Integer,parselnt(array[0]);arrayInt[1]=Integer,parse!nt(array[1]);ret

6、urnarrayInt;}}三个实现类:packagecom.model,behaviour;publicclassPlusextendsAbstractcalculatorimplcmcntsICalculator{©Overridepublicintcalculate(Stringexp){intarrayTnt[]二split(exp,〃\+〃);returnarrayInt[0]+arrayInt[1];}}packagecom.model,behaviour;publicclassMinusextendsAbstractCalculatorimplcmcntsICalculato

7、r{©Overridepublicintcalculate(Stringexp){intarrayInt[]二split(exp,〃\-〃);returnarraylnt[0]-arraylnt[1];packagecom.model,behaviour;publicclassMultiplyextendsAbstractcalculatorimplementsICalculator{©Overridepublicintcalculate(Stringexp){intarraylnt[]=split(exp,〃\*〃);returnarrayInt[0]*arrayInt[1];}}测试

8、类:packagecom.model,behaviour;publicclassStrategyTest{publicstaticvoidmain(String[]args){Stringexp=ICalculatorcal二newMinus();intresult二cal.calculate(exp);System,out.println(exp+〃二〃+resuIt);策略模式的决定权在用户,系统木身提供不同算法的实现,新增或者删除算法,对各种算法做封装。因此,策略模式多用在算法决策系统中,外部用户只需要决定用哪个算法即可。二、模板方法模式解释一下模板方法模式,就是指:一个抽彖类中,有一

9、个主方法,再定义1…n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用。就是在Abstractcalculator类中定义一个主方法calculate,calculate()调用spilt()等,Plus和Minus分别继承Abstractcalculator类,通过对Abstractcalculator的调用实现对子类的调用,看下面的例子:p

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。