策略模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了策略模式相关的知识,希望对你有一定的参考价值。
用户的角度:只需要知道具体的Context,并知道具体的策略类。
实现者的角度:拥有具体的策略类,封装了具体的算法或行为,并抽象一个公共的算法接口,包含在一个Context上下文中。
package com.stategy; /** * 上下文 * @author 黄二狗 * */ public class Context { private Strategy strategy; public Context(Strategy strategy) { this.strategy=strategy; } public void contextInterface() { strategy.Algorithmlnterface(); } }
package com.stategy; public interface Strategy { void Algorithmlnterface(); }
package com.stategy; public class ConcreteStrategyA implements Strategy{ @Override public void Algorithmlnterface() { System.out.println("具体的策略A"); } }
package com.stategy; public class ConcreteStrategyB implements Strategy{ @Override public void Algorithmlnterface() { System.out.println("具体的策略B"); } }
package com.stategy; public class ConcreteStrategyC implements Strategy{ @Override public void Algorithmlnterface() { System.out.println("具体的策略C"); } }
package com.stategy; /** * 用户需要知道具体的策略和策略接口还有上下文及其上下文的方法 * @author 黄二狗 * */ public class Client { public static void main(String[] args) { Strategy strategy=new ConcreteStrategyA(); Context context=new Context(strategy); context.contextInterface(); } }
以上是关于策略模式的主要内容,如果未能解决你的问题,请参考以下文章