网站转发,wordpress中文版广告,建设网站制作公司,网站下载免费软件这次我想谈谈策略设计模式 。 通过这种方式#xff0c;我开始撰写有关行为设计模式的文章。 这些模式表示对象之间的某些交互模式#xff0c;以使代码更灵活且组织得更好。此方法的最本质点是对象之间的松散耦合。  当您的应用程序中有多个实现目的的实现时#xff0c;应使用…   这次我想谈谈策略设计模式 。 通过这种方式我开始撰写有关行为设计模式的文章。 这些模式表示对象之间的某些交互模式以使代码更灵活且组织得更好。此方法的最本质点是对象之间的松散耦合。   当您的应用程序中有多个实现目的的实现时应使用该策略。 在这种情况下您将创建策略接口接口的具体实现以及最终一个上下文类该上下文类将以某些方法封装所有逻辑。 为了理解这种方法让我们看一个例子。   该示例将基于足球。 让我们想象一下任何一支足球队都能以两种方式比赛进攻和防守。 这两种策略是足球策略的特殊实现。      策略界面  public interface FootballStrategy {public void adhereTactic(String team);} 具体实现  public class AttackTactic implements FootballStrategy {Overridepublic void adhereTactic(String team) {System.out.println(team will play in attacking football!);}} 和  public class DefenceTactic implements FootballStrategy {Overridepublic void adhereTactic(String team) {System.out.println(team will make emphasis on defence!);}} 上下文类  public class TacticContext {private FootballStrategy strategy  null;public void selectTactic(String team) {strategy.adhereTactic(team);}public FootballStrategy getStrategy() {return strategy;}public void setStrategy(FootballStrategy strategy) {this.strategy  strategy;}} 演示策略用法  ...public static void main(String[] args) {String team1  Barcelona;String team2  Real Madrid;TacticContext context  new TacticContext();context.setStrategy(new AttackTactic());context.selectTactic(team1);context.setStrategy(new DefenceTactic());context.selectTactic(team2);}
... 代码执行的结果   巴塞罗那将踢足球  皇马会强调防守   何时使用策略设计模式 绝对是当客户不需要了解具体策略的实施或那里使用的数据时。 当您要动态使用集合中的一个类时。 我不知道现在还需要提及哪些情况。 但是我确信我的例子很冗长您可以对策略设计模式的优缺点做出自己的结论。   参考 设计模式 JCG合作伙伴 Alexey Zvolinskiy的策略来自Fruzenshtein的注释博客。  翻译自: https://www.javacodegeeks.com/2013/06/design-patterns-strategy.html