ArcEngine , VS.NET , SQLSERVER
淡泊明智,宁静致远~~~
(1)简单工厂模式:
      概括:“类工厂”通过“反射机制”生产“产品接口的具体实现产品类”
      具体:造车厂 造 汽车(implements for 车)
      关键:与普通模式相比,引入了 “产品是由工厂生产的”这一概念;利用“反射机制”使得类名通过参数传递,从而使得添加,删除,修改“具体产品类”时,不必修改“生产函数”的内部代码,只需要关心传递正确的类名参数。
(2)工厂模式:
      概括:“工厂接口的具体实现工厂类”通过“反射机制”生产“产品接口的具体实现产品类”
      具体:汽车厂(implements for 车厂) 造  汽车(implements for 车)
              公交车厂(implements for 车厂) 造  公交车(implements for 车)
      关键:与“简单共产模式”相比,引入了“工厂类都是由工产接口具体实现而来”这一概念,设计更为合理,其“工厂接口”能够抽象出“各种具体工厂实现类”的统一行为与方法。
      例子图:


      原文中的话:
      工厂方法模式和简单工厂模式在结构上的不同是很明显的。工厂方法模式的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上。
      工厂方法模式可以允许很多具体工厂类从抽象工厂类中将创建行为继承下来,从而可以成为多个简单工厂模式的综合,进而推广了简单工厂模式。
(3)抽象工厂模式:
      概括:“工厂接口的各种具体实现工厂类”通过“反射机制”生产“多种产品接口的具体实现产品类”
      具体:私家车厂(implements for 车厂) 造 奔驰(implements for 车)和福特(implements for 车)
              公交车厂(implements for 车厂) 造 大型公交车(implements for 车)和小型公交车(implements for 车)
      关键:与“共产模式”相比,引入了“具体工厂实现类不是仅能够造一种产品接口的具体实现类,而是能够造多种产品接口的具体实现类”这一概念,更贴近客观现状,扩充了应用性。
      例子图:

(5)门面模式:
      概念:每个“门面”都有一个“接待员”,该“接待员”负责所属子系统的所有行为与方法
      例子:去医院看病,“挂号”需要“START”,“STOP”,“OVER”三个过程。。。设置一个“挂号接待员”,由其统一规划“挂号”子系统所涉及的所有行为及方法,对于上层只暴露一个简单供调用的接口。
      本质:从下往上层层“封装”控制
      例子图:



(6)代理模式:
      概念:通过在“客户端”与“真实主题角色”之间设置“代理主题角色”,来帮助“真实主题角色”实现客户端的需求。
      举例:通过设置“电脑代理商”来帮助“电脑生产商”将电脑更好地销售给“客户”
      设计的几个名词:
      1.抽象主题角色:声明了真实主题与代理主题的共同接口(共有的特性);
      2.代理主题角色:含有对真实主题角色的引用(操作真实主体对象),代理角色通常在将客户端调用传递给真实主题对象的之前或者之后都会执行某些操作(方法),而不是只单纯的返回真实的对象,比如 代理商销售电脑时候还会附加一些优惠条件;
      3.真实主题角色:定义了代理角色所代表的真是对象。
      例子图:


学习内容来自《JAVA与模式》
posted on 2009-08-17 14:23  peaceful_fish  阅读(458)  评论(0编辑  收藏  举报