`

策略模式Strategy Pattern

 
阅读更多
一、
   一个接口,多个具体实现类,一个容器(供用户使用,利用了接口的特性)
   优点:高内聚低耦合,易于扩展,策略类之间可以自由切换
   缺点:维护各个策略类会给开发带来额外的开销;调用者需要知道所有的策略类
二、具体实现
    三个人上班,各有分工,
   
     接口
    
     public interface IJob{
          public void doSomething();
     }
     

     具体实现类,策略类
     
     //员工A负责调研
      public class A implements IJob{
         public void doSomething(){
             System.out.println("我要去北京调研");
         }
     }
      //员工B负责开发
      public class B implements IJob{
         public void doSomething(){
             System.out.println("我是开发的");
         }
     }
      //员工C负责测试
      public class C implements IJob{
          public void doSomething(){
              System.out.println("我是测试的");
          }
     }
     

     容器:公司,封装类
     
     public class Company{
        private IJob job;
        public Company(IJob job){
          this.job=job;
        }

        public void toDo(){
           this.job.doSomething();
        }
       
     } 
     

     功能实现
     
      public class Demo{
          public static void main(String args[]){
                Company c;
                //公司的测试部
                  c=new Company(new A());
               c.toDo();
               
               //公司的研发部
                 c=new Company(new B());
               c.toDo();
                ...
                
          }

      }
     
分享到:
评论

相关推荐

    策略模式 Strategy Pattern

    在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。...

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    1、策略模式STRATEGY PATTERN 2、代理模式PROXY PATTERN 3、单例模式SINGLETON PATTERN 4、多例模式MULTITION PATTERN 5、工厂方法模式FACTORY METHOD PATTERN 6、抽象工厂模式ABSTRACT FACTORY PATTERN 7、门面模式...

    设计模式之策略模式(Strategy Pattern)

    定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。

    设计模式之策略模式(Strategy Pattern)

    NULL 博文链接:https://bossshit.iteye.com/blog/715672

    设计模式-策略模式(Strategy)

    在策略模式(Strategy Pattern)中一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。

    策略模式(Strategy )

    策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。(原文:The Strategy Pattern defines a family of algorithms,encapsulates each ...

    C#策略模式(Strategy Pattern)实例教程

    主要介绍了C#策略模式(Strategy Pattern),以一个简单的实例讲述了C#策略模式的实现方法,包括策略模式的用途以及具体实现方法,需要的朋友可以参考下

    C#版 24种设计模式

    备忘录模式(Memento Pattern) 策略模式(Strategy Pattern) 抽象工厂模式(Abstract Factory Pattern) 代理模式(Proxy Pattern) 单例模式(Singleton Pattern) 迭代器模式(Iterator Pattern) 访问者模式(Visitor ...

    Strategy-design-pattern-_-model.rar_strategy

    设计模式——策略模式Strategy design pattern _ model

    《JAVA与模式》之策略模式

    javase 设计模式的strategy pattern《JAVA与模式》之策略模式详解

    设计模式 之 “策略模式[Strategy Pattern]”

    NULL 博文链接:https://lym6520.iteye.com/blog/690554

    24种设计模式与6大设计原则

    策略模式[STRATEGY PATTERN] 代理模式[PROXY PATTERN] 单例模式[SINGLETON PATTERN] 多例模式[MULTITION PATTERN] 工厂方法模式[FACTORY METHOD PATTERN] 抽象工厂模式[ABSTRACT FACTORY PATTERN] 门面模式[FACADE ...

    用Java实现23种设计模式

    策略模式(Strategy Pattern) 模板模式(Template Pattern) 访问者模式(Visitor Pattern) 4. J2EE 模式 MVC 模式(MVC Pattern) 业务代表模式(Business Delegate Pattern) 数据访问对象模式(Dao ...

    C#设计模式_设计模式_C#_

    创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3. 建造者模式(Builder) 4.... 策略模式(Strategy Pattern) 22. 访问者模式(Visitor Pattern) 23. 状态模式(State Pattern)

    C#设计模式(23种设计模式)

    创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) ... 策略模式(Strategy Pattern) 22. 访问者模式(Visitor Pattern) 23. 状态模式(State Pattern) @Author kwming

    设计模式PPT

    创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:  工厂方法模式(Factory Method ... 策略模式(Strategy Pattern)  模板方法模式(Template Method Pattern)  访问者模式(Visitor Pattern)

    设计模式_策略模式.zip

    在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 策略模式java-demo 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 ...

    Java设计模式,并加上个人理解

    6. 策略模式 (Strategy Pattern) 7. 适配器模式 (Adapter Pattern) 8. 模板方法模式 (Template Pattern) 9. 建造者模式 (Builder Pattern) 10. 原型模式 (Prototype Pattern) 11. 组合模式 (Composite ...

    策略模式StrategyPattern

    策略模式StrategyPattern,通过实现鸭子的飞行策略以及叫声策略演示策略模式的具体实现!

Global site tag (gtag.js) - Google Analytics