一,总体概要1,笔者浅谈策略模式,又叫算法簇模式,就是定义了不同的算法,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。策略模式和工厂模式有一定的类似,策略模式相对简单容易理解,并且可以在运行时刻自由切换。工厂模式重点是用来创建对象。策略模式应用比较广泛,比如:我们现在要定义数据交换格...
分类:
Web程序 时间:
2014-12-26 12:52:15
阅读次数:
177
策略模式(Strategy):它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。(原文:The Strategy Pattern defines a family of algorithms,encapsulates each on...
分类:
其他好文 时间:
2014-12-25 20:03:41
阅读次数:
120
在很多的计算场合,我需要在不同的时间、地方,用不同的算法计算数据;那么就引入了我们的今天要讲的策略设计模式;什么是策略设计模式?就是定义了算法的家族,分别封装起来,让他们之前可以相互的进行替换,此模式让算法的变化,不影响使用算法的客户端;
Strategy代码如下:
abstract class Strategy
{
//算法方法
public abstract...
分类:
其他好文 时间:
2014-12-24 16:25:26
阅读次数:
215
访问者模式,通过Visitor的注入,为Element扩展了方法实现。虽然避免了Element不用修改即可修改,但却破坏了类的封装性,同时,一旦变更就需要增加子类,在子类方法中调用基类方法,然后再使用Visitor的方法来扩展。个人理解,Visitor有点类似于策略模式中的算法,都是通过组合的方法变...
分类:
其他好文 时间:
2014-12-23 19:15:32
阅读次数:
157
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式...
分类:
其他好文 时间:
2014-12-23 17:00:13
阅读次数:
386
策略模式,与模板模式一样,都是为了将接口和算法实现解耦,但策略模式更主要是整体算法的替换,而模板模式主要是流程一致,部分算法的替换。个人理解为,一般算法替换,使用策略模式,当算法流程一致,可以提取为模板模式。实际中,策略模式,使用组合方式,将算法实现脱离上下文,上下文可以依据需要,使用不同的算法实现...
分类:
其他好文 时间:
2014-12-23 10:23:43
阅读次数:
134
下面我们来看一看策略模式的UNL类图 下图是一个典型的折扣系统 运用到了策略模式UML类图 ![在此输入图片描述][1] [1]: http://static.oschina.net/uploads/space/2014/1222/141340_ZT9s_876290.jpg 关键代码 Serv...
分类:
其他好文 时间:
2014-12-22 16:25:56
阅读次数:
233
行为型模式第二部分:解释器模式、中介者模式、访问者模式、策略模式、备忘录模式、迭代器模式。
解释器模式
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
使用时期
如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通...
分类:
其他好文 时间:
2014-12-22 13:01:27
阅读次数:
141
需求:商场收银软件,根据客户购买物品的单价和数量,计算费用,会有促销活动,打八折,满三百减一百之类的。一,使用工厂模式。# -*- encoding: utf-8 -*-#现金收费抽象类class CashSuper def accept_cash(money) endend#正常收费子...
分类:
其他好文 时间:
2014-12-21 19:22:46
阅读次数:
165
一 、 设计模式概述
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型
模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、
组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任
链模式、命令模式、备忘录模式、状态模式、访问者模式、...
分类:
其他好文 时间:
2014-12-19 00:41:40
阅读次数:
277