java设计模式--行为型模式--策略模式
2014-09-23 14:22
603 查看
策略模式:
大神写的代码就是不一样
策略模式 概述 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 适用性 1.许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。 2.需要使用一个算法的不同变体。 3.算法使用客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构。 4.一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式出现。 将相关的条件分支移入它们各自的Strategy类中以代替这些条件语句。 参与者 1.Strategy 定义所有支持的算法的公共接口。Context使用这个接口来调用某ConcreteStrategy定义的算法。 2.ConcreteStrategy 以Strategy接口实现某具体算法。 3.Context 用一个ConcreteStrategy对象来配置。 维护一个对Strategy对象的引用。 可定义一个接口来让Stategy访问它的数据。 测试类:
publicclassTest{ publicstaticvoidmain(String[]args){ Contextctx=newContext(newStrategyImplA()); ctx.doMethod(); ctx=newContext(newStrategyImplB()); ctx.doMethod(); ctx=newContext(newStrategyImplC()); ctx.doMethod(); } }
publicclassContext{ Strategystra; publicContext(Strategystra){ this.stra=stra; } publicvoiddoMethod(){ stra.method(); } }
publicabstractclassStrategy{ publicabstractvoidmethod(); }
publicclassStrategyImplAextendsStrategy{ publicvoidmethod(){ System.out.println("这是第一个实现"); } }
publicclassStrategyImplBextendsStrategy{ publicvoidmethod(){ System.out.println("这是第二个实现"); } }
publicclassStrategyImplCextendsStrategy{ publicvoidmethod(){ System.out.println("这是第三个实现"); } }
大神写的代码就是不一样
相关文章推荐
- java设计模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式、适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式,。 行为型模式,共十一种:策略模式、模板方法)
- Java与设计模式(二十三)行为型--策略模式
- 详解java设计模式(三)之策略模式(行为型)
- Java设计模式_行为型_策略模式_工作还是休息
- java-设计模式(行为型)-【策略模式】
- Java设计模式(13)行为型:策略模式
- Java设计模式_(行为型)_策略模式
- java-行为型模式-策略设计模式
- Java设计模式之行为型模式(策略模式)
- java设计模式之行为型模式-策略模式
- java设计模式(行为型)之策略模式
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 策略模式(Strategy) - Java实现
- 【行为型模式】策略模式(Strategy)之23种java设计模式
- [设计模式] - 策略模式(Java篇)
- 设计模式一:java设计模式之策略模式(一)
- java设计模式---Strategy Pattern---策略模式
- java设计模式:策略模式(Strategy)
- Java设计模式-----Strategy策略模式
- java 设计模式 学习笔记(4) 策略模式
- java 设计模式-策略模式