什么是策略模式?
Strategy pattern is mainly about using different algorithm at different situation.
3.具体策略(ConcreteStrategy):实现抽象策略类中的相关的算法或操作。
/** * 策略模式首先定义了一个接口行为,实现了接口的子类有不同的行为实现 然后再一个场景类中维护了一个指向接口类的引用。 这样在不同的场景下调用不同的 * 行为算法来处理 */ interface Strategy { // 定义接口方法 public void processPrice(int price); } // VIP待遇 class Vip implements Strategy { public void processPrice(int price) { System.out.println("VIP用" + price + "元坐在VIP房"); } } // 普通待遇 class Ordinary implements Strategy { public void processPrice(int price) { System.out.println("Ordinary用" + price + "元坐在普通房"); } } class Situation { private Strategy strategy; public Situation(Strategy strategy) { this.strategy = strategy; } public void handConsumer(int price) { this.strategy.processPrice(price); } } public class Main { public static void main(String[] args) { Ordinary ord = new Ordinary(); Vip vip = new Vip(); Situation s1 = new Situation(ord); Situation s2 = new Situation(vip); s1.handConsumer(10); s2.handConsumer(10); } }
原文地址:http://blog.csdn.net/lgcssx/article/details/39702779