随笔分类 - 模式、重构
常用设计模式
摘要:重构案例之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...
阅读全文
摘要: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')...
阅读全文
摘要:重构 6.9 节中Replace Method with Method Object(以函数对象取代函数)Replace Method with Method Object (以函数对象取代函数)大家有没有什么心得!例如下面的代码:TestMethod()方法内调用了 test1() test2()这2个私有方法时,如果应用 Replace Method with Method Object,为保...
阅读全文
摘要:FACTORY 模式
——《敏捷软件开发 原则、模式与实践(c#版)》第29章
柯立芝(1872-1933)美国前总统
那个建造工厂的人建造了一座宇宙......
依赖倒置原则(DIP)告诉我们应该优先依赖于抽象类,而避免依赖于具体类。当这些具体类不稳定时,更应该如此。因此,下面的代码片段违反了这个原则:
阅读全文
摘要:ACTIVE OBJECT 模式
——《敏捷软件开发 原则、模式与实践(c#版)》第21章
ACTIVE OBJECT 模式是建立在COMMAND模式的基础上。这是实现多线程控制的一项古老的技术。该模式有多种使用方式,为许多工业系统提供了一个简单的多任务核心。
阅读全文
摘要:COMMAND 模式
——《敏捷软件开发 原则、模式与实践(c#版)》第21章
描述
COMMAND模式是最简单、最优雅的模式之一。
如图1-1所示,COMMAND模式简单的几乎可笑。该模式仅由一个具有唯一方法的接口组成,这似乎很荒谬?代码1-1 给出了图1-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/-->
阅读全文
摘要:描述
考虑如下代码
Employee e = DB.GetEmployee("Bob");
if(e!=null && e.IsTimeToPay(today))
{
e.Pay();
}
阅读全文
浙公网安备 33010602011771号