首页 > 代码库 > 策略模式
策略模式
用户的角度:只需要知道具体的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(); } }
策略模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。