- 浏览: 23539 次
- 性别:
- 来自: 上海
文章分类
迪米特法则:LoD,最少知识原则。 如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要用另一个类的某一个方法的话,可以通过第三者转发这个调用。
策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。
public interface Strategy {
public void algorithmInterface();
}
public class ConcreteStrategyA implements Strategy {
public void algorithmInterface() {
}
}
public class ConcreteStrategyB implements Strategy {
public void algorithmInterface() {
}
}
public class ConcreteStrategyC implements Strategy {
public void algorithmInterface() {
}
}
public class Context() {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public void contextInterface() {
strategy.algorithmInterface();
}
}
策略模式的重心不是如何实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活,具有更好的维护性和扩展性。
扩展:将上下文当作参数传递给策略对象。
策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。
public interface Strategy {
public void algorithmInterface();
}
public class ConcreteStrategyA implements Strategy {
public void algorithmInterface() {
}
}
public class ConcreteStrategyB implements Strategy {
public void algorithmInterface() {
}
}
public class ConcreteStrategyC implements Strategy {
public void algorithmInterface() {
}
}
public class Context() {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public void contextInterface() {
strategy.algorithmInterface();
}
}
策略模式的重心不是如何实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活,具有更好的维护性和扩展性。
扩展:将上下文当作参数传递给策略对象。
发表评论
-
访问者模式Visitor预留通路,回调实现
2014-03-13 16:55 319表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各 ... -
桥接模式Bridge分离抽象和实现
2014-03-13 16:55 431将抽象部分与它的实现部分分离,使它们都可以独立地变化。 桥接 ... -
职责链模式Chain of Responsibility分离职责,动态组合
2014-03-12 17:25 310使多个对象都有机会处 ... -
装饰模式Decorator动态组合
2014-03-12 17:00 245动态地给一个对象添加 ... -
解释器模式Interpreters分离实现,解释执行
2014-03-12 16:27 259给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解 ... -
享元模式Flyweight分离与共享
2014-03-12 13:20 271运用共享技术有效地支持大量细粒度的对象。 安全实体:就是被系 ... -
备忘录模式Memento保存和回复内部状态
2014-03-11 17:47 404在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外 ... -
状态模式State根据状态来分离和选择行为
2014-03-11 17:20 355允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改 ... -
模板方法模式Templete Method 固定算法骨架
2014-03-11 11:15 509定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法 ... -
组合模式Composite统一叶子对象和组合对象
2014-03-07 18:18 286将对象组合成树型结构以表示“部分-整体”的层次结构。组合模式使 ... -
迭代器模式Iterator 控制访问聚合对象中的元素
2014-03-07 17:57 387提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该 ... -
命令模式Command 封装请求
2014-03-07 16:26 336将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数 ... -
观察者模式Observer订阅模式-触发联动
2014-03-07 11:19 342定义对象间的一种一对 ... -
代理模式Proxy 为别人做嫁衣(控制对象访问)
2014-03-06 00:39 303为其他对象提供一种代理以控罪对这个对象的访问。 代理大致被分为 ... -
中介者模式Mediator 封装交互
2014-03-06 00:19 346用一个中介对象来封装 ... -
原型模式Prototype 克隆生成对象
2014-03-06 00:19 542用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 ... -
生成器模式Builder 分离整体构建算法和部件构造
2014-03-06 00:19 278将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建 ... -
抽象工厂模式 Abstract Factory 选择产品簇的实现
2014-03-06 00:20 369工厂方法模式或简单工 ... -
工厂方法模式Factory Method延迟到子类来选择实现
2014-03-05 18:12 891定义一个用于创建对象 ... -
单例模式Singleton某个类只需要一个类实例
2014-03-05 16:46 395保证一个类只有一个实例,并提供一个访问它的全局访问点。 懒汉 ...
相关推荐
【Java设计模式】(2)策略模式Strategy
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。...
C#面向对象设计模式 (行为型模式) Strategy 策略模式 视频讲座下载
走进设计模式之 策略模式(Strategy) 代码
设计模式C++学习之策略模式(Strategy)
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。(原文:The Strategy Pattern defines a family of algorithms,encapsulates each ...
设计模式 策略模式。金典模式之策略模式代码。
2009-03-9 策略模式Strategy:当解决一个问题的途径(策略)有很多种的时候,每一种处理方式都可以做为一种处理策略,通过管理类来切换调用不同的策略。
strategy策略模式源码 策略模式源码 策略模式源码 策略模式源码
设计模式-策略模式(Strategy)结合Android小知识讲解,简单明了
分享了War Strategy Optimization Algorithm战争策略算法源代码及其原文,亲测有效,更多算法可进入
在策略模式(Strategy Pattern)中一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。
一个把数组导出为表格的算法,输入一个数组,导出一个表格,当用户想改变导出的表格时,便可以通过改变输出的算法改变输出的结果。如果输出的内容用以网页显示,则输出 <table><tr><td>Jack</td></tr><tr><td>Maya...
这种设计模式比较常用,希望能够帮助到大家。
strategy(策略模式Java代码实现)
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。
一、意图 ...具体策略(ConcreteStrategy)角色:以Strategy接口实现某具体算法 环境(Context)角色:持有一个Strategy类的引用,用一个ConcreteStrategy对象来配置 四、策略模式的优点和缺点 策略模式的优点
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第23节:行为型模式Strategy策略模式
用java实现策略模式,strategy Patten,使用三种不同的排序算法实现策略模式,可执行代码,可直接读取文件中需要排序的数据
策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法...