摘要: 一、一个叫声接口和几只鸭子从一个叫声接口开始。{《HeadFirst设计模式》Delphi代码之模式小结}{一个叫声接口}{编译工具:Delphi2010forwin32}{E-Mail:guzh-0417@163.com}unituQuackable;interfacetype IQuackabl... 阅读全文
posted @ 2014-11-05 15:18 小光zfg 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 12{《HeadFirst设计模式》工厂模式之抽象工厂}3{抽象工厂的产品}4{编译工具:Delphi7.0}5{E-Mail:guzh-0417@163.com}67unituPizzaIngredient;89interface1011type12TDough=class(TObject)13e... 阅读全文
posted @ 2014-11-05 15:02 小光zfg 阅读(525) 评论(0) 推荐(0) 编辑
摘要: 12{《HeadFirst设计模式》之组合模式}3{组合与单项的抽象父类}4{编译工具:Delphi2007forwin32}5{E-Mail:guzh-0417@163.com}67unituMenuComponent;89interface1011uses12SysUtils;1314type1... 阅读全文
posted @ 2014-11-05 14:53 小光zfg 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 12{《HeadFirst设计模式》工厂模式之工厂方法}3{产品类}4{编译工具:Delphi2007forwin32}5{联系方式:guzh-0417@163.com}67unituProducts;89interface1011type12{abstractPizza}1314TPizza=cl... 阅读全文
posted @ 2014-11-05 14:44 小光zfg 阅读(529) 评论(0) 推荐(0) 编辑
摘要: 12{《HeadFirst设计模式》之单例模式}3{编译工具:Delphi2007forwin32}4{E-Mail:guzh-0417@163.com}56unituChocolateBoiler;78interface910type11TChocolateBoiler=class(TObject... 阅读全文
posted @ 2014-11-05 14:42 小光zfg 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 简单工厂:工厂依据传进的参数创建相应的产品。12{《HeadFirst设计模式》工厂模式之简单工厂}3{产品类}4{编译工具:Delphi7.0}5{联系方式:guzh-0417@163.com}67unituProducts;89interface1011type12TPizza=class(... 阅读全文
posted @ 2014-11-05 14:41 小光zfg 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 12{《HeadFirst设计模式》之观察者模式}3{主题与观察者}4{编译工具:Delphi7.0}5{联系方式:guzh-0417@163.com}67unituWeatherReport;89interface1011uses12Classes,SysUtils;1314type15TObse... 阅读全文
posted @ 2014-11-05 14:37 小光zfg 阅读(482) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式定义了一个算法骨架,允许子类对算法的某个或某些步骤进行重写(override)。12{《HeadFirst设计模式》之模板方法模式}3{编译工具:Delphi7.0}4{E-Mail:guzh-0417@163.com}56unituCoffeineBeverageWithHook;7... 阅读全文
posted @ 2014-11-05 14:35 小光zfg 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 容器的主要职责有两个:存放元素和浏览元素。根据单一职责原则(SRP)要将二者分开,于是将浏览功能打包封装就有了迭代器。用迭代器封装对动态数组的遍历:12{《HeadFirst设计模式》之迭代器模式}3{容器中的元素类}4{编译工具:Delphi7.0}5{E-Mail:guzh-0417@163... 阅读全文
posted @ 2014-11-05 14:34 小光zfg 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 适配器模式的主要意图是对现有类的接口进行转换,以满足目标类的需求。其次,可以给目标类的接口添加新的行为(主要指方法)。这一点容易与装饰模式混淆。从意图方面来看,装饰模式不改变(通常指增加)接口中的行为(主要指方法),而是在原有行为(主要指方法)的基础上添加新的功能;从类结构方面来看,装饰模式中的... 阅读全文
posted @ 2014-11-05 14:31 小光zfg 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 12{《HeadFirst设计模式》之策略模式}3{本单元中的类为策略类}4{编译工具:Delphi7.0}5{E-Mail:guzh-0417@163.com}67unituStrategy;89interface1011type12{飞行接口,及其实现类}1314IFlyBehavior=Int... 阅读全文
posted @ 2014-11-05 14:23 小光zfg 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 12{《HeadFirst设计模式》之装饰模式}3{本单元中的类为被装饰者}4{编译工具:Delphi7.0}5{E-Mail:guzh-0417@163.com}67unituComponent;89interface1011type12TBeverage=class(TObject)//抽象饮料... 阅读全文
posted @ 2014-11-05 14:22 小光zfg 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 1unituSubObject;23interface45type67{TAmplifier与TTuner,TCDPlayer,TDVDPlayer相互依赖。}8{在TTuner等的简单实现时用不到对TAmplifier的引用,}9{但现实生活中就应该让TAmplifier提供服务,所以这里保留了。... 阅读全文
posted @ 2014-11-05 14:21 小光zfg 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 12{《HeadFirst设计模式》之命令模式}3{本单元中的类为命令的接收者}4{编译工具:Delphi7.0}5{联系方式:guzh-0417@163.com}67unituReceiveObject;89interface1011type12TLight=class(TObject)13pri... 阅读全文
posted @ 2014-11-05 13:32 小光zfg 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 命令模式可以很轻松的实现撤销(Undo)功能。命令的接受者:1unituReceiveObject;23interface45type6TLight=class(TObject)7public8procedureOpen;9procedureOff;10end;1112implementation1... 阅读全文
posted @ 2014-11-05 13:29 小光zfg 阅读(162) 评论(0) 推荐(0) 编辑
摘要: //命令的接受者unit uReceiveObject;interfacetype TLight = class(TObject) public procedure Open; procedure Off; end; TGarageDoor = class(TObject) public proce... 阅读全文
posted @ 2014-11-05 13:28 小光zfg 阅读(126) 评论(0) 推荐(0) 编辑
摘要: {没有应用状态模式的代码}//工程文件program Project1;{$APPTYPE CONSOLE}uses uGumballMachine in 'uGumballMachine.pas';var aGumballMachine: TGumballMachine;begin aGumbal... 阅读全文
posted @ 2014-11-05 13:27 小光zfg 阅读(214) 评论(0) 推荐(0) 编辑