设计模式学习之策略模式
1.名词解释:
策略模式:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的用户。在不同的时间或条件应用不同的业务规则时,可以考虑使用策略模式;
?
2.代码示例:
策略抽象类package DesignPattern.StrategyPattern;public abstract class Strategy {public abstract void Execute();}
?
具体策略类Apackage DesignPattern.StrategyPattern;public class ConcreateStrategyA extends Strategy{@Overridepublic void Execute() {//代码逻辑System.out.println("ConcreateStrategyA.execute is process...");}}
?
具体策略类Bpackage DesignPattern.StrategyPattern;public class ConcreateStrategyB extends Strategy{@Overridepublic void Execute() {// TODO Auto-generated method stubSystem.out.println("ConcreateStratetyB.execute is process...");}}
?
package DesignPattern.StrategyPattern;public class Context {private Strategy strategy = null;public Context(Strategy strategy) {this.strategy = strategy;}public void ContextInterface() {strategy.Execute();}}
?
主控程序类:package DesignPattern.StrategyPattern;public class Client {public static void main(String[] args) {Strategy a = new ConcreateStrategyA();Strategy b = new ConcreateStrategyB();Context c1 = new Context(a);Context c2 = new Context(b);c1.ContextInterface(); c2.ContextInterface();} }
?