Delphi模式编程之策略模式(上)
2006-02-04 13:47:34 来源:WEB开发网 闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�

核心提示:Delphi模式编程之策略模式刘 艺 1.1 模式解说策略(Strategy)模式的用意是定义一组算法(algorithms),并将每个算法封装到具有共同接口的独立的类中,Delphi模式编程之策略模式(上),从而使它们可以相互替换,策略模式让算法变化独立于使用它的客户端,当TContext将客户端请求转发给它的T
Delphi模式编程之策略模式
刘 艺1.1 模式解说
策略(Strategy)模式的用意是定义一组算法(algorithms),并将每个算法封装到具有共同接口的独立的类中,从而使它们可以相互替换。策略模式让算法变化独立于使用它的客户端。 要了解策略模式的使用动机和意义,我们得先从一个有趣的例子说起。在一个物料管理系统中,出库和入库模块是该系统的核心部分(下面我们以出库为例进行分析)。 对于一个没有面向对象编程经验的程序员,他们往往会把出库的所有逻辑都放在客户端(出库单界面),并在客户端利用条件分支语句来判断该出库单类型是领料、借料还是报损,以便选择不同的出库结算方法,如图 1‑1所示。这样一来,客户端的代码就变得复杂和难以维护。比如:需要新增调拨单类型的出库时,就要修改判断条件,重新编译和发布客户端。当情况愈来愈复杂,条件分支会愈来愈多,添加的程序代码也会愈来愈多,这样让客户端愈来愈大并难以维护,互相影响和出错的可能性增大。



1.2 结构与用法
策略模式的结构如图 1‑5所示,它包括了以下参与者: · 抽象策略(TStrategy)——为所有支持的算法声明一个共同的接口。TContext使用这个接口调用由TConcreteStrategy定义和封装的算法。 · 具体策略(TConcreteStrategy)——封装了具体算法或行为。实现TStrategy接口。 · 上下文(TContext)——持有一个到TStrategy的引用。调用TStrategy接口,动态配置具体算法或行为。
更多相关文章和示例程序源代码可以到作者网站下载:http://www.liu-yi.net
- ››Delphi实现把10进制转换成16进制的函数进制转化
- ››Delphi中将字符串按给定字符分隔(似split函数功能...
- ››Delphi 动态创建窗体,锁定窗口赋值
- ››Delphi 与 VC 共享接口和对象
- ››Delphi图像处理 -- 表面模糊
- ››Delphi之多线程实例
- ››Delphi SelectSingleNode的使用 根据节点属性获取...
- ››Delphi接口详述
- ››delphi 远程调试
- ››Delphi与DirectX之DelphiX(34): TDIB.Lightness()...
- ››模式作用域:初级读本和最佳实践
- ››Delphi Application.MessageBox详解
更多精彩
赞助商链接