工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个.工厂方法让类把实例化推迟到子类. 所有工厂模式都用来封装对象的创建.工厂方法模式通过让子类决定该创建的对象是什么,来达到将对象创建的过程封装的目的. 依赖倒置原则(Dependency Inversion Principle):要依赖抽象,不要依赖具体类.…
1. 简单工厂 1. 你开了一家披萨店,点披萨的方法可能是这样: public Pizza orderPizza(String type) { Pizza pizza; if (type.equals("芒果披萨")){ pizza = new MangoPizza(); }else if (type.equals("核桃披萨")){ pizza = new WalnutPizza(); }else if (type.equals("橙皮披萨")…
策略模式(Strategy Pattern): 定义了了算法簇,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户端. 第一个设计原则:找出应用中可能需要变化之处,把他们独立出来,不要和哪些不需要变化的代码混在一起. 理解1:把会变化的部分取出来并[封装]起来,好让其他部分不会受到影响. 理解2:把会变化的部分取出并封装起来,以便以后可以方便的扩充此部分,而不影响不需要变化的部分 第二个设计原则:针对接口编程,而不是针对实现编程. [针对接口编程]真正的意思是[针对超类…
1. 例子 1. 做一个鸭子模拟器,里面有很多不同的鸭子,有的可以游泳,有的可以睡觉,有的可以呱呱叫,一般套路是定义一个鸭子的超类,在 超类里定义睡觉,游泳,呱呱叫的方法,再让不同的鸭子子类继承这个超类,实现自己的display()方法来表现鸭子的行为,像下面这样: 2. 但如果要加一个可以吃火锅的鸭子呢,类就会变成这样: 可以看到,每添加一个新的鸭子就要修改超类一次,而不需要这些多余行为的鸭子不得不 继承这些多余的方法,这样每只鸭子都是全能的,一点差异都没有,代码失去了意义,这样做既不安全,又…
HeadFirst设计模式读书笔记(1)-策略模式(Strategy Pattern) HeadFirst设计模式读书笔记(2)-观察者模式(Observer Pattern) HeadFirst设计模式读书笔记(3)-装饰者模式(Decorator Pattern)…
先编一个这么久不写的理由 上周我终于鼓起勇气翻开了headfirst设计模式这本书,看看自己下一个设计模式要写个啥,然后,我终于知道我为啥这么久都没写设计模式了,headfirst的这个抽象工厂模式,额,我看了好几次,都不太理解. 在我的印象中,简单工厂,工厂方法,抽象工厂,这三个东西应该是层层递进的,然后我带着这个思路去看,emmmm,真的没看懂,还好最近又补了一遍<大话设计模式>,揣着刚刚温习了的新知识,然后又上了headfirst这条船,我感觉我这次应该是看懂了. 所以不写并不是因为忙,…
简单工厂:工厂依据传进的参数创建相应的产品. 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…
 1  2 {<HeadFirst设计模式>工厂模式之抽象工厂 }  3 { 抽象工厂的产品                       }  4 { 编译工具:Delphi7.0                  }  5 { E-Mail :guzh-0417@163.com          }  6  7unit uPizzaIngredient;  8  9interface 10 11type 12  TDough = class(TObject) 13  end; 14 15  …
  1   2{<HeadFirst设计模式>工厂模式之工厂方法 }   3{ 产品类                              }   4{ 编译工具 :Delphi2007 for win32      }   5{ 联系方式 :guzh-0417@163.com         }   6   7unit uProducts;   8   9interface  10  11type  12  { abstract Pizza }  13  14  TPizza = cl…
开篇 天天逛博客园,就是狠不下心来写篇博客,忙是一方面,但是说忙能有多忙呢,都有时间逛博客园,写篇博客的时间都没有?(这还真不好说) 每次想到写一篇新的设计模式,我总会问自己: 1,自己理解了吗? 2,我能以一种简单且有逻辑的方式把它说出来吗? 不说做到有的放矢,但是一本正经的胡说八道还是要有吧,起码要忽悠得头头是道嘛(手动斜眼笑) 关于工厂模式的几个问题 1,这个是拿来干什么的? 2,怎么用? 3,不用行不行? 第一个和第三个问题,我现在就可以告诉你答案:早点下班,可以 所有的设计模式对我来说…