设计模式之Prototype(原型模式)

Prototype原型模式是一种创建型设计模式,它主要面对的问题是:某些结构复杂的对象的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口。感觉好像和前几篇所说的设计模式有点分不清,下面我们先来回顾一下以前的几种设计模式,予以区分,再来说说原型模式。

       Singleton单件模式解决的问题是:实体对象个数问题(这个现在还不太容易混)

       AbstractFactory抽象工厂模式解决的问题是:一系列互相依赖的对象的创建工作

       Builder生成器模式解决的问题是:一些复杂对象的创建工作,子对象变化较频繁,对算法相对稳定

      FactoryMethor工厂方法模式解决的问题是:某个对象的创建工作

      再回来看看今天的Prototype原型模式,它是用来解决某些结构复杂的对象的创建工作。现在看看,好象还是差不多。这个问题先放在这,我们先往下看Prototype原型模式。

      《设计模式》中说道:使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。

      此时注意:原型模式是通过拷贝自身来创建新的对象,这一点和其他创建型模式不相同。好,我们再来看看原型模式的结构


      
这个结构说明原型模式的客户端程序(ClientApp)是依赖于抽象(Prototype),而对象的具体实现也是依赖于抽象(Prototype)。符合设计模式原则中的依赖倒置原则——抽象不应依赖于具体实现,具体实现应依赖于抽象。

       我们现在回来看看原型模式的实现,我定义了一个场景,一个人开这一辆车在一条公路上。现在这件事是确定的,但不确定的有几点:1、人:姓名,性别,年龄;2车:什么牌子的;3公路:公路名字,长度,类型(柏油还是土路)。现在我们一个个实现。

       先来实现人,定义一个抽象类,AbstractDriver,具体实现男性(Man)和女性(Women

具体参考 http://www.cnblogs.com/kid-li/archive/2006/05/18/403559.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值