1.策略模式
package 策略模式;
public class ConcreteStrategy extends Strategy{
public void strategyInteface() {
// TODO Auto-generated method stub
}
}
package 策略模式;
public class Contex {
private Strategy strategy;
public void contextInteface(){
strategy.strategyInteface();
}
}
package 策略模式;
/*内涵:针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得他们可以相互替换,
* 策略模式可以使得算法在不影响客户端的情况下发生变化
* */
public abstract class Strategy {//抽象策略类:
/*策略模式是对算法的包装,是把使用的算法的责任和算法本身分割开,委派给不同的对象管理
* 环境角色:持有一个strategy类引用
* 抽象策略角色:给出所有具体策略类所需要的接口
* 具体策略角色:包装了相关的算法和行为
*
* 多态的特征:算法的互换
*
* */
public abstract void strategyInteface();
/*注意:
* 具体的策略类都有一些公有的行为,应该将这些行为都放到抽象策略角色中(抽象角色必须是抽象类)
* 策略模式在每一刻都只能使用一个策略对象;同时与几个策略对象联系只有在不会耗费计算机资源时或在策略对象
* 花费很多时间初始化时才需要
* */
}
时间: 2024-11-05 06:09:19