设计模式之原型模式
来源:互联网 发布:网络投资诈骗寻求帮助 编辑:程序博客网 时间:2024/05/29 18:02
1 定义
原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
UML类图为
2 通用代码
package DesignPatterns;public class Prototype {public static void main(String[] args) throws CloneNotSupportedException {// 客户端调用Message msg1 = new Message(139);msg1.setText("回家吃饭了!");msg1.sendMessage();Message msg2 = msg1.clone();msg2.setText("还没回来?");msg2.sendMessage();}}// 短信类class Message implements Cloneable{private int number;private String content;public Message(int number){this.number = number;}public void setText(String content){this.content = content;}public void sendMessage(){System.out.println(content);}@Overrideprotected Message clone() throws CloneNotSupportedException {Message m = (Message)super.clone();return m;}}
一般在初始化的信息不发生变化的情况下,克隆是最好的办法,既隐藏了对象创建的细节,又对性能是大大提高。使用原型模式,要比直接new一个对象性能好的多,因为它是在内存二进制流的拷贝。
这里还需注意的是java中的clone默认是浅拷贝,关于深拷贝和浅拷贝请看原文;
阅读全文
0 0
- 设计模式之原型
- 设计模式之原型
- 设计模式 之 原型
- 设计模式之原型
- 设计模式之原型
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之-原型模式
- 设计模式之 原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之--原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- makefile编译选项CC与CXX/CPPFLAGS,CFLAGS与CXXFLAGS/LDFLAGS
- 第一个Java应用
- 案例:垃圾邮件二分类
- ORACLE_AWR报表的类型
- 深度学习基本概念、思想
- 设计模式之原型模式
- Android判断定位功能是否可用
- javascript中defer和async
- MyBatis三剑客
- pyspark 合并列与合并行
- Server.UrlEncode()指定GBK编码
- 小技巧实现修改input-file样式,代理上传
- git多人协作开发
- spring+springmvc+jpa+jsp 练习