You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Feb 2, 2019. It is now read-only.
设计模式-原型模式
用原型实例指定创建对象的种类,通过拷贝这些原型创建新的对象。
电子账单
即,使用电子账单
最后绘制场景
使用多线程改进
由于是一个线程发送邮件过慢,使用多线程解决问题。
增加一个Cloneable接口
关于克隆
克隆用途
关于Cloneable 接口,用途和Serializable一样为标记型接口,内部没有方法和属性,implements Cloneable 表示对象能被克隆,即能使用Object.clone()方法,
关于深浅拷贝
这个已经重复多次了。。。。。。。。。再js里已经重复了一次
浅拷贝,只单单拷贝本身,不拷贝引用。
深拷贝,完整的递归拷贝。
修改后的代码
然后修改场景类
使用拷贝,将sendMail放入线程池里,每次拷贝一个对象,然后将对象放入sendMail,然后将sendMail放入线程里,每次运行一个线程,拷贝一个对象,这样解决,一个线程还未发送完成邮件的时候,就传入的对象被修改的问题。
最后 深拷贝
实现深拷贝
在clone内部,将该对象引用的对象,再次进行拷贝即可。
应用
打飞机游戏中,主飞机,使用单例模式,其余飞机,使用原型模式,以一架飞机为原型,生成多个飞机。后者使用深拷贝。
The text was updated successfully, but these errors were encountered: