文档章节

策略模式

u
 udbwcso
发布于 2016/03/25 15:27
字数 179
阅读 64
收藏 1

策略模式

定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户.

Context: 环境类。维护一个Strategy对象的引用,用一个ConcreteStrategy来配置。 

Strategy: 抽象策略类。定义所有支持算法的公共接口。Context使用这个接口来调用某个Concretestrategy定义的算法。 

ConcreteStrategy: 具体策略类。封装了具体的算法实现。

public abstract class Strategy {
    abstract void algorithm();
}
public class ConcreteStrategyA extends Strategy{
    public void algorithm() {
    }
}
public class ConcreteStrategyB extends Strategy{
    public void algorithm() {
    }
}
public class Context {
    private Strategy strategy;

    public Context(Strategy strategy){
        this.strategy = strategy;
    }

    public void algorithm(){
        strategy.algorithm();
    }

    public Strategy getStrategy() {
        return strategy;
    }

    public void setStrategy(Strategy strategy) {
        this.strategy = strategy;
    }
}

© 著作权归作者所有

共有 人打赏支持
u
粉丝 80
博文 66
码字总数 15709
作品 0
武汉
私信 提问

暂无文章

 SQL与NoSQL数据库入门基础知识详解

这几年的大数据热潮带动了一激活了一大批hadoop学习爱好者。有自学hadoop的,有报名培训班学习的。所有接触过hadoop的人都知道,单独搭建hadoop里每个组建都需要运行环境、修改配置文件测试等...

左手的倒影
12分钟前
3
0
Jenkinsfile

node { wrap([$class: 'BuildUser']) { def user = env.BUILD_USER_ID println user }}def InPutCheckBranch(){ timeout(time:10, unit:'SECONDS') { I......

whhbb
17分钟前
0
0
如何去设计前端框架能力?星巴克消息开放项目从0到1,从点到面的思考

本文由淘宝前端工程师罗嗣分享,主要讲述了作者在星巴克消息开放项目中的总结和思考,希望对大家有帮助,让业务分享更加有价值。 摘要 从满足星巴克项目需求单点出发,发散到从点到面的思考。...

阿里云官方博客
22分钟前
0
0
如何在多Kubernetes集群和多租户环境中使用Prometheus监控

过去十年里,我一直在虚拟化和云计算领域工作,在VMware、Mercury Interactive和Oracle领导产品管理工作,并格外关注DevOps方向。直到2014年,我开始认真关注并研究容器。当2015年Kubernete...

RancherLabs
23分钟前
0
0
如何在Chrome浏览器中启动deviceready事件(尝试调试phonegap项目)?

我正在开发PhoneGap应用程序,我希望能够在Chrome中调试它,而不是在电话上调试。但是,我在onGetReady()函数中初始化我的代码,该函数在PhoneGap触发“deviceready”事件时触发。由于Chr...

kisshua
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部