放大啦资源网 http://www.fangdala.com
当前位置首页 > 百科资料> 正文

原型模式

2023-03-06 11:53:11 暂无评论 百科资料

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

  • 中文名 原型模式
  • 外文名 Prototype
  • 问题 结构复杂的对象"的创建工作
  • 实现 clone()方法来实现对象的克隆
  • 模式 Prototype

定义

  原型模式是一种创建型设计模式,Prototyp露犯节e模式允许一个对象再创建绝音派乙万久服工另外一个可定制的对象,根本无需知道任何如何创建的细节,工来自作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。

解决问题

  它主要面对的问题360百科是:"某些结构复杂的对象"的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却客著植呢拥有比较稳定一致的接口。

如何使用

  因为来自Java中的提供clone()方法来实现对象的克隆,所以Prototype模式实现一下子变得很简单。

  以勺子360百科为例:

  调用Pro液资态许很对totype模式很简单:

  当然也可以结合工厂模式来创建AbstractSpoon实例。

  在J治起斤引很逐ava中Prototype模式变成clone()方法的使用,由于Java的纯洁的面向对象特性,使得在Java中使用设计模式变得很自然,问根吧互职李把友击角创两者已经几乎是浑然一体了。这反映在很多模式上,如Itera某何蛋波战虽放金tor遍历模式。

  带Prototype Manager的原型模式:客户(Client)角色:客户端类向原型管理器提出跑原如材径远导角抓容创建对象的请求。

  抽象原型(Prototype)角色:这是一个抽象角色省怀具课名宜程地破,通常由一个C#米行接口或抽象类实现。此角色给出所盐毛坏车九临车朝钱室官有的具体原型类所需的接口。在C#中,抽象原型角色通常实现了I同息升Cloneable接口。

  具体原型(Concrete Prototype)角色:被复制的对象。此角色需要实现抽象的原型角色所要求的接口。

  原型管理器(Prototype Manager)角色:创建具体原型类的对象,并记录每一个被创建的对象。

  代码实现如下:

猜你喜欢