策略设计模式

策略设计 

 * 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们还可以相互替换。策略模式让算法独立于是用它的客户而独立变化。

/**
 * 回家策略接口
 * @author dell
 *
 */
public interface GoHomeStrategy {


public String goHomeByWhat();
}


package Strategy;


public class AFewPeople  implements GoHomeStrategy {

@Override
public String goHomeByWhat() {
return "乘飞机回家!!!";
}

}


package Strategy;


public class MiddleFewPeople  implements GoHomeStrategy {
@Override
public String goHomeByWhat() {
return "乘火车回家!!!";
}
}

package Strategy;


public class MorePeople  implements GoHomeStrategy {
@Override
public String goHomeByWhat() {
return "乘汽车回家!!!";
}
}


package Strategy;


public class PeopleGoHome {
private GoHomeStrategy  strategy;
public PeopleGoHome(GoHomeStrategy strategy) {
super();
this.strategy = strategy;
};
public String getGoHomeStrategy(){
return strategy.goHomeByWhat();
}
}

package Strategy;


/**
 * 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们还可以相互替换。策略模式让算法独立于是用它的客户而独立变化。
 * @author dell
 *
 */
public class ClientTest {


public static void main(String[] args) {
GoHomeStrategy s1 = new MorePeople();// 封装起来的算法,完全独立于客户端

PeopleGoHome  pg = new PeopleGoHome(s1);// 调用算法策略
System.out.println(pg.getGoHomeStrategy());

GoHomeStrategy s2 = new MiddleFewPeople();
PeopleGoHome  pg2 = new PeopleGoHome(s2);
System.out.println(pg2.getGoHomeStrategy());

GoHomeStrategy s3 = new AFewPeople();
PeopleGoHome  pg3 = new PeopleGoHome(s3);
System.out.println(pg3.getGoHomeStrategy());
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值