文档章节

创建型模式之五:原型模式

奋斗到天明
 奋斗到天明
发布于 2015/08/27 16:35
字数 187
阅读 18
收藏 0

原型模式频繁用于需要相似的对象,原型模式克隆对象,并改掉其中的特征。这样消耗的资源就很少,想想为什么消耗少的资源?

原型模式类图

原型模式Java代码

package designpatterns.prototype;
 
//prototype
interface Prototype {
 void setSize(int x);
 void printSize();
 }
 
// a concrete class
class A implements Prototype, Cloneable {
 private int size;
 
 public A(int x) {
 this.size = x;
 }
 
 @Override
 public void setSize(int x) {
 this.size = x;
 }
 
 @Override
 public void printSize() {
 System.out.println("Size: " + size);
 }
 
 
 @Override
 public A clone() throws CloneNotSupportedException {
 return (A) super.clone();
 }
}
 
//when we need a large number of similar objects
public class PrototypeTest {
 public static void main(String args[]) throws CloneNotSupportedException {
 A a = new A(1);
 
 for (int i = 2; i < 10; i++) {
 Prototype temp = a.clone();
 temp.setSize(i);
 temp.printSize();
 }
 }
}

在java标准库应用 java.lang.Object - clone() 

以上文章翻译自: http://www.programcreek.com/2013/02/java-design-pattern-prototype/

© 著作权归作者所有

共有 人打赏支持
奋斗到天明
粉丝 18
博文 112
码字总数 82707
作品 0
昌平
程序员
私信 提问
设计模式之五大创建型模式

一、概况 总体来说设计模式分为三大类: (1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 (2)结构型模式,共七种:适配器模式、装饰器模式、代理...

小城故事_
2016/03/19
53
0
Java经典设计模式之五大创建型模式(附实例和详解)

原文出处: 小宝鸽 一、概况 总体来说设计模式分为三大类: (1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 (2)结构型模式,共七种:适配器模式...

刘星石
2016/03/08
6
0
Java程序员从笨鸟到菜鸟之(三十四)大话设计模式(五)创建者模式和原型模式

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188 创建者模式是创建型模式中最负责的一个设计模式了,创建者负责构建一个对象的各个部分,并且完成组装的过程....

长平狐
2012/11/12
228
0
小菜学设计模式——设计模式总结之创建型

1、面向过程与面向对象 1)面向过程通过划分功能模块,通过函数间相互调用来实现,但需求变化时就需要更改函数,而你改动的函数有多少地方在调用她呢?关联多少数据,这是很不容易弄得清楚地...

learn_more
2015/07/05
0
0
PHP之设计模型分类(二)

创建型模式: 单例模式、工厂模式(简单工厂、工厂方法、抽象工厂)、创建者模式、原型模式。 1、单例模式 目的:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 应用场景:数据库...

peasant
2016/05/03
45
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 你一口我一口多咬一口是小狗

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文 :分享Roy Orbison的单曲《She's a Mystery to Me》 《She's a Mystery to Me》- Roy Orbison 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
30分钟前
10
2
Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
今天
12
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
18
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部