策略模式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();
                ...
                
          }

      }
     

猜你喜欢

转载自fulndon.iteye.com/blog/2244974