常見設計模式之【策略模式】

來源:互聯網
上載者:User

用最常用的例子,最容易懂得demo講述策略模式:

策略:只要能完成目的,啥方法都ok;

package Strategy;/** *@Description: 策略模式 *@author Potter    *@date 2012-8-28 下午01:46:57 *@version V1.0    */public class App {public static void main(String[] args) {Calculator calculator=new Calculator();calculator.setNumber1(20);calculator.setNumber2(30);calculator.setOperator(new Minus());System.out.println("result="+calculator.getResult());}}

計算機類:

package Strategy;/** *@Description:計算機  *@author Potter    *@date 2012-8-28 下午01:49:59 *@version V1.0    */public class Calculator {private int number1;private int number2;private Operator operator;public void setNumber1(int number1) {this.number1 = number1;}public void setNumber2(int number2) {this.number2 = number2;}public void setOperator(Operator operator) {this.operator = operator;}public int getResult(){return operator.execute(number1, number2);}}

運算介面(策略介面):

package Strategy;/** *@Description: 運算介面 *@author Potter    *@date 2012-8-28 下午01:51:41 *@version V1.0    */public interface Operator {public int execute(int number1,int number2);}

加法類:

package Strategy;/** *@Description: 加法類 *@author Potter    *@date 2012-8-28 下午01:55:16 *@version V1.0    */public class Plus implements Operator{@Overridepublic int execute(int number1, int number2) {return number1-number2;}}

減法類:

package Strategy;/** *@Description: 減法類 *@author Potter    *@date 2012-8-28 下午01:57:05 *@version V1.0    */public class Minus implements Operator{@Overridepublic int execute(int number1, int number2) {return number1+number2;}}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.