状态模式和策略模式容易混淆。
状态模式从结构图、示例性演示代码来看,都和策略模式一致,他们最大的区别,是内涵不同。
策略模式,是对一种业务场景,多种算法的实现,比如促销 --》多买多折促销、满减促销;状态模式,是对一种业务场景,多种状态的封装,比如在对于TCP协议,对于每种状态都封装一个具体状态类。...
分类:
其他好文 时间:
2014-10-15 20:05:01
阅读次数:
343
策略模式:定义一系列的算法,把每一个算法封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。是一种行为模式。策略模式包含三种角色1 抽象策略角色: 策略类,通常由一个接口或者抽象类实现。2 具体策略角色:包装了相关的算法和行为。3 环境角色:持有一个策略类的引用,最终给客户端...
分类:
Web程序 时间:
2014-10-15 18:18:41
阅读次数:
137
原文出自:http://ttitfly.iteye.com/blog/1364671. 以一个算术运算为例,传统做法为:java 代码package org.common; public class Calculate { public String getResu...
分类:
编程语言 时间:
2014-10-15 13:17:30
阅读次数:
214
策略模式使开发人员能够开发出很多可替换的组件,而组件间是弱连接的,体现了代码的可重用行,弱连接也为以后开发新的组件打下了基础,具有较强的可扩展性,易于维护。结合简单工厂模式实现简单四则运算。
分类:
其他好文 时间:
2014-10-15 12:40:20
阅读次数:
188
一. 策略模式定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。先说这个场景中的要素:三个妙计,一个锦囊,一个赵云。1)妙计:(一个接口,三个具体妙计)1 package com.henry.strategy;2 3 pu...
分类:
其他好文 时间:
2014-10-14 17:44:59
阅读次数:
212
设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链...
分类:
其他好文 时间:
2014-10-14 17:37:18
阅读次数:
296
PHP草根论之设计模式-策略模式
此模式将算法与数据进行分离.
算法:狭义算法,对固定结构的输入数据产生一个固定结构的输出. 不同的算法,输入是相同的,输出是不同但类似的,或输出相同但实现过程不同.
数据:一个持有数据的对象/类定义....
分类:
Web程序 时间:
2014-10-14 16:33:28
阅读次数:
179
策略模式一.设计原则: 1)找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起。 2) 针对接口编程,而不是针对实现编程(例如:鸭子例子当中,fly()和quack()对不同的鸭子是会变的,所以分别定义两个接口FlayBehavior和QuackBehavior中分别饱饭...
分类:
其他好文 时间:
2014-10-14 14:39:38
阅读次数:
223
/**
?*??抽象的的策略角色
?*
?* @date??2014-10-4上午10:04:33
?*/
public?interface?Stratrgy?{
???public?void?dosomething();
}
public?class?CreateStrategy1?implements?Stratrgy?{...
分类:
其他好文 时间:
2014-10-11 21:04:07
阅读次数:
181
/**
* 策略模式:针对同一命令(或行为),不同的策略做不同的动作
* 商品促销
* 本类为:收取现金的类
*
* @author stone
*/
public interface ICashSuper {
double acceptCash(double money);
}
/**
* 正常收取现金
* @author stone
*
*/
public ...
分类:
编程语言 时间:
2014-10-10 19:17:14
阅读次数:
148