设计模式之Prototype(原型)
2019独角兽企业重金招聘Python工程师标准>>>
原型模式定义:
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.
Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。
如何使用?
因为Java中的提供clone()方法来实现对象的克隆,所以Prototype模式实现一下子变得很简单.
以勺子为例:
public abstract class AbstractSpoon implements Cloneable { String spoonName; public void setSpoonName(String spoonName) {this.spoonName = spoonName;} public Object clone() |
有个具体实现(ConcretePrototype):
public class SoupSpoon extends AbstractSpoon ? |
调用Prototype模式很简单:
AbstractSpoon spoon = new SoupSpoon();
AbstractSpoon spoon2 = spoon.clone();
当然也可以结合工厂模式来创建AbstractSpoon实例。
在Java中Prototype模式变成clone()方法的使用,由于Java的纯洁的面向对象特性,使得在Java中使用设计模式变得很自然,两者已经几乎是浑然一体了。这反映在很多模式上,如Interator遍历模式。
转载于:https://my.oschina.net/sunzhyng/blog/372046
设计模式之Prototype(原型)相关推荐
- java 设计模式 prototype_Java设计模式之Prototype原型模式
一.场景描述 创建型模式中,从工厂方法模式,抽象工厂模式,到建造者模式,再到原型模式,我的理解是,创建对象的方式逐步从编码实现转向内存对象处理. 例如,在"仪器数据采集器"的子类/ ...
- 设计模式学习笔记——原型(Prototype)框架
设计模式学习笔记--原型(Prototype)框架 @(设计模式)[设计模式, 原型模式, prototype] 设计模式学习笔记原型Prototype框架 基本介绍 原型案例 类图 实现代码 Pro ...
- 精读《设计模式 - Prototype 原型模式》
Prototype(原型模式) Prototype(原型模式)属于创建型模式,既不是工厂也不是直接 New,而是以拷贝的方式创建对象. 意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的 ...
- C++设计模式-Prototype原型模式
作用: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. Prototype模式提供了一个通过已存在对象进行新对象创建的接口(Clone), Clone()实现和具体的语言相关,在C+ ...
- Prototype原型模式(创建型模式)
1.原型模式解决的问题 现在有一个抽象的游戏设施建造系统,负责构建一个现代风格和古典风格的房屋和道路. 前提:抽象变化较慢,实现变化较快(不稳定) 整个抽象的游戏设施建造系统相对变化较慢,本例中只有一 ...
- Java描述设计模式(05):原型模式
一.原型模式简介 1.基础概念 原型模式属于对象的创建模式.通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象. 2.模式结构 原型模式要求对象实现一个 ...
- Prototype 原型模式
一.意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.(Specify the kinds of objects to create using a prototypical in ...
- JavaScript 面向对象 (prototype 原型模式)
一. JavaScript 设计思想 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版.这是历史上第一个比较成熟的网络浏览器,轰动一时.但是,这个版本的浏览器只能用来浏览 ...
- Object.prototype 原型和原型链
Object.prototype 原型和原型链 原型 Javascript中所有的对象都是Object的实例,并继承Object.prototype的属性和方法,有些属性是隐藏的.换句话说,在对象创建 ...
- 三分钟带你看懂prototype原型——ES6进阶
三分钟带你看懂prototype原型--ES6进阶 1. prototype 定义 2. new 构造函数 3. 存储 4. prototype 作用 1. prototype 定义 在JS中的类的实 ...
最新文章
- rails3 ajax替换成js
- Ant Design Pro 改变默认启动端口号
- 我对NHibernate的感受(2):何必到处都virtual
- spring 配置定时任务
- 宝藏好物gRPCurl
- [JavaScript] 函数同名问题
- Xml的编码和Bom
- TypeError: cannot unpack non-iterable int object查找指定文件夹下指定文件类型的数量
- 软件测试项目实战步骤
- 34个有用的 JavaScript 库,现在就可以用起来
- 基于51单片机ADC0808自动数字电压表仿真数码管显示
- 计算机电脑怎么开热点,电脑怎么设置wifi热点共享
- 新闻稿标题写作中的四大技巧
- 麦吉尔大学计算机工程的世界排名,麦吉尔大学计算机工程本科.pdf
- IVL和SVL的区别
- 云计算day12-Kubernetes_K8s
- MaxCompute 助力衣二三构建智能化运营工具
- Ruoyi-Vue是如何实现微信公众号免密登录的
- 关系数据库范式(1NF,2NF,3NF,BCNF,4NF,5NF)全解析
- 单边指数信号的特点_单边带通信的特点
热门文章
- 一个...买裤子的全过程
- 获取浏览器选中文本并操作
- 在Ubuntu下搭建Spark群集
- 好文要顶之 --- 简单粗暴地理解 JavaScript 原型链
- EK中fromCharCode和parseInt的配合使用
- C# 开发 Windows 服务 使用Log4net 组件 不能生成日志文件
- WCF Error: 客户端配置部分中,找不到引用协定{0}的默认终结点元素……
- 我的5年Python7年R,述说她们的差异在哪里?
- spring Boot 学习(一、Spring Boot与缓存)
- 从Retrofit的源码来看 HTTP