1unit uSubObject;   2   3interface   4   5type   6   7  { TAmplifier与TTuner,TCDPlayer,TDVDPlayer相互依赖.            }   8  { 在TTuner等的简单实现时用不到对TAmplifier的引用,               }   9  { 但现实生活中就应该让TAmplifier提供服务,所以这里保留了.       }  10  { TProjector对TDVDPlayer…
简单工厂:工厂依据传进的参数创建相应的产品. http://www.cnblogs.com/DelphiDesignPatterns/archive/2009/07/24/1530536.html {<HeadFirst设计模式>工厂模式之简单工厂 } 3{ 产品类 } 4{ 编译工具 :Delphi7.0 } 5{ 联系方式 :guzh-0417@163.com } 6 7unit uProducts; 8interface 10 11type 12 TPizza = class(TObje…
模板方法模式定义了一个算法骨架,允许子类对算法的某个或某些步骤进行重写(override).   1   2{<HeadFirst设计模式>之模板方法模式 }   3{ 编译工具: Delphi7.0              }   4{ E-Mail : guzh-0417@163.com      }   5   6unit uCoffeineBeverageWithHook;   7   8interface   9  10uses  11  SysUtils;  12  13type…
容器的主要职责有两个:存放元素和浏览元素.根据单一职责原则(SRP)要将二者分开,于是将浏览功能打包封装就有了迭代器. 用迭代器封装对动态数组的遍历:  1  2{<HeadFirst设计模式>之迭代器模式 }  3{ 容器中的元素类                  }  4{ 编译工具:Delphi7.0             }  5{ E-Mail :guzh-0417@163.com     }  6  7unit uItem;  8  9interface 10 11type 1…
 1  2{<HeadFirst设计模式>之策略模式 }  3{ 本单元中的类为策略类           }  4{ 编译工具: Delphi7.0           }  5{ E-Mail : guzh-0417@163.com   }  6  7unit uStrategy;  8  9interface 10 11type 12  {飞行接口,及其实现类 } 13 14  IFlyBehavior = Interface(IInterface) 15    procedure Fl…
  1   2{<HeadFirst设计模式>之命令模式 }   3{ 本单元中的类为命令的接收者      }   4{ 编译工具 :Delphi7.0         }   5{ 联系方式 :guzh-0417@163.com }   6   7unit uReceiveObject;   8   9interface  10  11type  12  TLight = class(TObject)  13  private  14    FLocation: String;  15  …
1.什么是门面模式? Provide a unified interface to a set of interfaces in a subsystem.Facade defines a higher-level interface that makes the subsystem easier to use. 门面模式(Facade Pattern):也叫外观模式,要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行. 门面模式提供一个高层次的接口,使得子系统更易于使用. 说人话:假设…
{没有应用状态模式的代码} //工程文件 program Project1; {$APPTYPE CONSOLE} uses  uGumballMachine in 'uGumballMachine.pas'; var  aGumballMachine: TGumballMachine; begin  aGumballMachine := TGumballMachine.Create(5); aGumballMachine.InsertQuarter;  aGumballMachine.Turn…
命令模式可以很轻松的实现撤销(Undo)功能. 命令的接受者:  1unit uReceiveObject;  2  3interface  4  5type  6  TLight = class(TObject)  7  public  8    procedure Open;  9    procedure Off; 10  end; 11 12implementation 13 14{ TLight } 15 16procedure TLight.Off; 17begin 18  Writ…
一.一个叫声接口和几只鸭子 从一个叫声接口开始. {<HeadFirst设计模式>Delphi代码之模式小结 } { 一个叫声接口                            } { 编译工具:Delphi2010 for win32          } { E-Mail :guzh-0417@163.com             } unit uQuackable; interface type IQuackable = interface(IInterface) proced…