### 原型模式
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象(摘抄)
原型模式的作用在于多次创建类似对象时可以减少构造函数使用,减少代码,同时也可以提高性能。通过查看别人的博客和一些资料得知,用clone方法复制对象是直接对内存操作比重新生成一个对象效率高很多,尤其是数据十分多的对象。
~~~
class Prototype implements Cloneable
{
public Object clone()
{
return (Object)this.clone();
}
}
class Client{
public static void main()
{
Prototype a = new Prototype();
while(1){
Prototype B = (Prototype) a.clone();
}
}
}
~~~
原型模式是很简单的模式,继承一个接口,重写一个方法就ok了,需要注意的一点就是 深拷贝 和 浅拷贝
java的基本数据类型会clone方法会直接深拷贝,而引用数据类型则需要自己手动深拷贝
~~~
class Prototype implements Cloneable
{
String a;
public Object clone()
{
Prototype prototype = (Prototype) this.clone();
prototype.a = this.a;
return prototype;
}
}
~~~
### 总结
因为我对原型模式的应用比较少,以前都没有怎么考虑到效率的问题,这次学到后,以后会多留意留意。
个人感觉原型模式最大的好处就是新建对象时不需要再一个参数一个参数的去设置了,因为有些参数是相同的,直接clone方便很多,尤其是今天看到大家都说原型模式运用得好会提升整个软件的运行效率后,感觉原型模式好处也是大大滴!!!
- 前言
- (1)代码无错就是优?——简单工厂模式
- (2)商场促销——策略模式
- (3)&(4)&(5) 设计模式原则
- (6)穿什么有这么重要?——装饰模式
- (7)为别人做嫁衣——代理模式
- (8)雷锋依然在人间——工厂方法模式
- (9)简历复印——原型模式
- (10)考题抄错会做也白搭——模板方法模式
- (11)迪米特法则
- (12)牛市股票还会亏钱?—— 外观模式
- (13)好菜每回味不同——建造者模式
- (14)老板回来,我不知道——观察者模式
- java实现事件委托
- (15)就不能不还DB吗?—— 抽象工厂模式
- (16)无尽加班何时休息——状态模式
- (17)在NBA我需要翻译——适配器模式
- (18)如果再回到从前——备忘录模式
- (19)分公司=部门——组合设计模式
- (20)想走?可以!先买票——迭代器模式
- (21)有些类也需计划生育——单例模式
- (22)手机软件何时统一——桥接模式
- (23)烤羊肉串引来的思考——命令模式
- (24)加薪非要老总批?——职责链模式
- (25)世界需要和平——中介者模式
- (26)项目多也别傻做——享元模式
- (28)男人和女人——访问者模式