策略模式結合簡單原廠模式

來源:互聯網
上載者:User

package Stragery;

public abstract class Operation {
  public abstract int oper(int a);
 }

 各自的演算法實現:
   

package Stragery;

public class OperationImpl extends Operation {
 
  public  int  oper(int a)
  {
   System.out.println("使用演算法1");
  
   return a;
  }
 
 

}
class OperationImplB extends Operation {
 
  public  int  oper(int a)
  {
   System.out.println("使用演算法2");
  
   return a+2;
  }
 
 

}

class OperationImplC extends Operation {
 
  public  int  oper(int a)
  {
   System.out.println("使用演算法3");
  
   return a+3;
  }
 
 

}

 策略類:

 

public class StrageryContext {

 Operation oper=null;
 public StrageryContext(int no)
 {
  switch (no)
  {
  
  case 1:
   OperationImpl os=new OperationImpl();
   oper=os;
   break;
   
  case 2:
   OperationImplB os1=new OperationImplB();
   oper=os1;
   break;
   
  case 3:
   OperationImplC os2=new OperationImplC();
   oper=os2;
   break;
   
  }
  
  
  
 }
 
 public int getResult(int a)
 {
  return oper.oper(a); 
 }
  
}

Client使用類:
  public class Client {
 
  public static void main(String args[]){
   StrageryContext context;
  
   int a;
   System.out.println("示範調用演算法1");
  
    context=new StrageryContext(new Integer(1));
  
    a=12;
   context.getResult(a);
  
  
System.out.println("示範調用演算法2");
  
   context=new StrageryContext(new Integer(2));
  
  
   context.getResult(a);
  
  
System.out.println("示範調用演算法3");
  
   context=new StrageryContext(new Integer(3));
  
   a=12;
   context.getResult(a);
  
  
  
  
  
  }
}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.