模式之--原型(Prototype)未完
来源:互联网 发布:淘宝助理怎么添加水印 编辑:程序博客网 时间:2024/05/18 02:56
行为目的:
通过对类实例的复制,得到一个新的实例。
问题起源:
实际应用中,如果需要创建的类其实例过程很昂贵和很复杂时,且需要的新实例相比之前的实例属性区别不多时,我们就可以通过复制已有的实例来得到一个新的实例,就使用原型模式。
使用情况:
在系统运行与其类的创建,组合,操作等相互独立的情况下,如果类是在运行中实例化的,比如动态加载,或者需要实例化的类对于不同的状态其属性只有很小的变化。这种情况下有必要保存类初始实例,后续根据初始实例复制创建新的实例。
UML结构框图:
UML框图说明:
使用说明:
客户类要求复制得到实例类
模式优缺点:
1)向客户隐藏制造新实例的复杂性,提供让客户能够产生未知对象的选项;
2)在某些情况下,复制对象比创建对象更有效。
3)在运行中创建和销毁对象。原型可使客户在运行中创建和销毁对象,相比其他创建型模式,将变得更加灵活。
4)对复制后对象结构和属性的更改,就可以非常容易的得到一个不一样的实例。
5)有时,对象的复制将相当麻烦。
实现细节:
1)在软件运行过程中,如果存在比较多的原型需要动态创建和销毁,建议创建单独的原型管理类进行组织。
2)实现Cloneable接口。并覆盖clone方法。
示例代码:
Java类库中的使用:
关联模式:
原型与抽象工厂在某些情况下可以互相替换使用的,也可以一起使用,抽象工厂可以通过保存类的原型,在创建类的时候,得到原型的一个拷贝。
原型模式也通常与组合(Composite),适配器模式(Decorator)搭配使用。
0 0
- 模式之--原型(Prototype)未完
- 设计模式之原型模式(Prototype)
- 设计模式之原型模式(Prototype)
- 设计模式之原型模式(Prototype)
- 设计模式之----------原型模式(prototype)
- 设计模式之原型模式(Prototype)
- 设计模式之原型模式(ProtoType)
- 设计模式之:原型模式(Prototype)
- 设计模式之原型模式(Prototype)
- 设计模式之原型模式(Prototype)
- 设计模式之原型模式(Prototype)
- 设计模式之原型模式(Prototype)
- 设计模式之原型模式(Prototype)
- 设计模式(二)之 Prototype(原型)
- 原型模式(Prototype)
- 原型模式(prototype)
- 原型(Prototype)模式
- 原型(ProtoType)模式
- js动态添加div
- 替换字符串中的字母
- IDA知其所以然
- Java开发工具Eclipse安装
- C++开发者都应该使用的10个C++11特性
- 模式之--原型(Prototype)未完
- 生活的样子
- C# winform 超简单的花样图片切换
- Cocos2d-3.x_重力加速器的使用
- 用链表类解决链表问题
- 数据存储与访问(2)--------SharedPreference使用
- Python:字典数据类型的一些知识
- (Cordys BOP 4.3)在业务流程模型中使用人工活动
- 三国历史上的军事天灾与战争