设计模式 -- 策略模式 -- c++实现

注:本文主要代码基于大话设计模式里的C#代码(第2章)。

 

UML图:

 

策略模式的实现:

将所要用的所有算法抽象出一个接口(所以每个算法要用类实现)

使用一个策略上下文类,封装一个算法接口的指针,并提供一个函数给外部调用具体算法。

外部用具体算法类的指针来创建策略上下文类。


下面代码是一个商场收费系统的抽象,将收费的算法(普通,打折,返利)抽象成cCashSuper接口

在策略上下文类cCashContext中使用工厂模式,可以将具体算法的调用与调用者解耦。


代码如下:

阅读更多
个人分类: C/C++ 设计模式
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭