原型模式 C#
来源:互联网 发布:验证码java 编辑:程序博客网 时间:2024/05/28 03:02
(微信原文:http://mp.weixin.qq.com/s/1LzSkaSgMIqE44CNLYgY8A )
首先介绍一下原型模式,原型模式是软件开发中常用的一种设计模式,是指用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象。其本质就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。
原型模式的应用:在黑客帝国中,反派机器人不断通过复制自身来达到新机器人的产生,需要新机器人时,就对原型进行Clone一份,来产生一个和原型相同或者相似的新对象,或者说用原型实例指定创建对象的种类,并且通过复制这些原型来创建新的对象。
原型模式的程序结构图:
实现代码如下所示:
原型类
具体原型类
客户端代码
在.NET中可以很容易地通过实现ICloneable接口(这个接口就是原型,提供克隆方法,相当于与上面代码中MonkeyKingPrototype抽象类)中Clone()方法来实现原型模式,如果我们想我们自定义的类具有克隆的功能,首先定义类继承与ICloneable接口并实现Clone方法.- 我们依据细胞的自我复制使用程序实现原型模式:
实现细胞类
客户端调用:
从上图图可以看出,在客户端中需要创建不同功能的其它细胞时,并不需要每次都去调用Cells类的构造函数(每调用一次构造函数,就需要New一个对象,如果构造函数的时间很长,那么,每次需要实例化新对象就会消耗过多的性能,所以,使用克隆是最好的解决办法,既隐藏了对象的实例化过程,又大大的提高了性能)。当然,原型模式也具有一定的优缺点。
使用原型模式的优点:
1.原型模式向客户隐藏了创建新实例的复杂性
2.原型模式允许动态增加或较少产品类。
3.原型模式简化了实例的创建结构,工厂方法模式需要有一个与产品类等级结构相同的等级结构,而原型模式不需要这样
4.产品类不需要事先确定产品的等级结构,因为原型模式适用于任何的等级结构
缺点:
每个类都需要有一个Clone(克隆自身的方法)
阅读全文
0 0
- C#实现原型模式
- C# 原型模式小试牛刀
- 原型模式 C#
- 原型模式 C#
- C#设计模式-原型模式
- 【C#设计模式-原型模式】
- C#设计模式--原型模式
- C#中的原型模式讲解
- C#设计模式(原型模式)
- C#设计模式(四)原型模式
- C#设计模式03-原型模式
- 【设计模式】C#版原型模式
- c#设计模式==原型模式
- c#设计模式之原型模式
- C#设计模式之原型(ProtoType)
- C#设计模式之原型(ProtoType)
- C#设计模式之原型(ProtoType)
- C#设计模式之原型(ProtoType)
- Retrofit工具类的封装
- HTML5——拖拽,地理定位,web存储,缓存
- 学习笔记_008
- 人工智能领域的争议
- getimagesize() php 获取图片真实类型,大小等
- 原型模式 C#
- MySQL的GTID
- Python字符串操作
- 二叉树
- chapter9.3
- [二分+DFS序上DP]BZOJ 4753—— [Jsoi2016]最佳团体
- 欢迎使用CSDN-markdown编辑器
- CSS-列表属性
- C++构造函数与析构函数