随笔分类 -  模式、重构

常用设计模式
摘要:重构案例之ECShop_V2.7.3_UTF8_release0411/upload/includes/lib_common.php 第1490行的build_uri 函数。重构之前的 build_url 函数有大概 400 行左右的代码,而且switch 的条件分支里还夹杂了 if 的条件。故将 build_uri 函数试着重构成了UriRewrite 类。代码1 重构前的 build_url 函数代码/** * 重写 URL 地址 * * @access public * @param string $app 执行程序 * @param array $para... 阅读全文
posted @ 2012-10-31 16:25 Old 阅读(2381) 评论(0) 推荐(0)
摘要:Factory定义:<?phpclass Example{ // The factory method public static function factory($type) { if (include_once 'Drivers/' . $type . '.php') { $classname = 'Driver_' . $type; return new $classname; } else { throw new Exception ('Driver not found')... 阅读全文
posted @ 2012-10-24 10:50 Old 阅读(418) 评论(0) 推荐(0)
摘要:重构 6.9 节中Replace Method with Method Object(以函数对象取代函数)Replace Method with Method Object (以函数对象取代函数)大家有没有什么心得!例如下面的代码:TestMethod()方法内调用了 test1() test2()这2个私有方法时,如果应用 Replace Method with Method Object,为保... 阅读全文
posted @ 2009-11-26 15:29 Old 阅读(602) 评论(1) 推荐(0)
摘要:FACTORY 模式 ——《敏捷软件开发 原则、模式与实践(c#版)》第29章 柯立芝(1872-1933)美国前总统 那个建造工厂的人建造了一座宇宙...... 依赖倒置原则(DIP)告诉我们应该优先依赖于抽象类,而避免依赖于具体类。当这些具体类不稳定时,更应该如此。因此,下面的代码片段违反了这个原则: 阅读全文
posted @ 2009-06-19 15:58 Old 阅读(779) 评论(6) 推荐(0)
摘要:ACTIVE OBJECT 模式 ——《敏捷软件开发 原则、模式与实践(c#版)》第21章 ACTIVE OBJECT 模式是建立在COMMAND模式的基础上。这是实现多线程控制的一项古老的技术。该模式有多种使用方式,为许多工业系统提供了一个简单的多任务核心。 阅读全文
posted @ 2009-06-18 16:29 Old 阅读(2533) 评论(1) 推荐(0)
摘要:COMMAND 模式 ——《敏捷软件开发 原则、模式与实践(c#版)》第21章 描述 COMMAND模式是最简单、最优雅的模式之一。 如图1-1所示,COMMAND模式简单的几乎可笑。该模式仅由一个具有唯一方法的接口组成,这似乎很荒谬?代码1-1 给出了图1-1对应的代码。 阅读全文
posted @ 2009-06-18 14:09 Old 阅读(2094) 评论(5) 推荐(1)
摘要:Command模式的实践主题 文章将通过一个简单的 Shell 库来阐述 Command模式的一个实际应用。如何使用 Shell 库 在开始之前,我们先来看看如何使用这个 Shell 库。 解决方案结构如(图1-1)图1-1 解决方案 从图上可以看出,该 Shell 库非常的简单。其中 ICommand 接口定义了只定义了一个Execute 方法,该方法的签名见代码清单 1-1.代码清单 1-1Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 阅读全文
posted @ 2009-06-17 13:23 Old 阅读(285) 评论(0) 推荐(0)
摘要:描述 考虑如下代码 Employee e = DB.GetEmployee("Bob"); if(e!=null && e.IsTimeToPay(today)) { e.Pay(); } 阅读全文
posted @ 2009-06-04 14:53 Old 阅读(1487) 评论(1) 推荐(0)