设计模式:原型模式(Prototype)
生活随笔
收集整理的這篇文章主要介紹了
设计模式:原型模式(Prototype)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
歡迎支持筆者新作:《深入理解Kafka:核心設計與實踐原理》和《RabbitMQ實戰指南》,同時歡迎關注筆者的微信公眾號:朱小廝的博客。
歡迎跳轉到本文的原文鏈接:https://honeypps.com/design_pattern/prototype/
?原型模式:用原型實例指定創建對象的種類,并且通過拷貝這些原型創建新的對象。
?舉個例子:
1 原型(實際上是implements了Cloneable接口,進而重寫clone()方法)
2 測試代碼
public class MainTest {public static void main(String[] args){ProtoType pt1 = new ProtoType();pt1.setName("protoType_1");ProtoType pt2 = pt1.clone();System.out.println(pt1 == pt2);System.out.println(pt1.getClass() == pt2.getClass());pt2.setName("protoType_2");System.out.println(pt1.getName()+" "+pt2.getName());} }輸出:
false true protoType_1 protoType_2?克隆還分為淺克隆和深克隆,細節這里就不贅述了。在《Effective Java》中作者提出了“謹慎地覆蓋clone”,文中提出了Cloneable的許多問題,建議使用拷貝構造器的方法來替換Cloneable.
優缺點
優點:
缺點:
適用場景
Jdk中的原型模式
java.lang.Object#clone()
java.lang.Cloneable
參考資料:
歡迎跳轉到本文的原文鏈接:https://honeypps.com/design_pattern/prototype/
歡迎支持筆者新作:《深入理解Kafka:核心設計與實踐原理》和《RabbitMQ實戰指南》,同時歡迎關注筆者的微信公眾號:朱小廝的博客。
總結
以上是生活随笔為你收集整理的设计模式:原型模式(Prototype)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式:工厂方法模式(Factory
- 下一篇: asp.net ajax控件工具集 Au