Java设计模式之策略

时间:2022-05-21 21:57:49
在主方法调用
int main(String [] args){
//通过捡垃圾赚钱
}

策略模式适用于当一个应用程序需要实现一种特定的服务或者功能,而且该程序有多种实现方式时使用。
在开发过程中,我们有可能处理同一件事而调用不同的算法,也许你可以通过if else语句来把不同的算法封装起来。如果只有一两种算法这样写还好,但是如果有比较多的算法,用if else方法写出来的代码就会变得很混乱。
那么我们接下来就说一下利用设计模式--策略来解决这个问题

假设我们需要用到“赚钱”的算法:

先定义一个接口

Inteface IStrategy{
public void make_Money();
}

然后定义两个封装着不同算法的两个可以”赚钱“的类:

class Garbage_collecting implements  IStrategy{
public void make_Money(){
System.out.println("捡垃圾去了");
}
}

class Go_to_work implements IStrategy{
public void make_Money(){
System.out.println("上班去了");
}
}
好了,我们已经定义了两个赚钱的算法接下来再写一个方法调用它们:

public class Money{
public void getMoney(IStrategy is){
System.out.println("开始赚钱");
is.make_Money();
System.out.println("结束赚钱");
}
}



最后就是调用它们啦,如果想调用捡垃圾的赚钱方法:


<pre name="code" class="java">int main(String [] args){
//通过捡垃圾赚钱
Garbage_collecting gc=new Garbage_collecting();
Money money=new Money();
money.getMoney(gc);
}