大话设计模式读书笔记--6.原型模式
生活随笔
收集整理的這篇文章主要介紹了
大话设计模式读书笔记--6.原型模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡單的復制粘貼極有可能造成重復代碼的災難, 但是java中提供了克隆的功能, 如果一個對象創建過程復雜,又要頻繁使用, 在初始化信息不發生變化的情況下,應當采取克隆而不是new一個對象
定義
原型模式: 用原型實例指定創建對象的種類,并且通過拷貝這些原型創建新的對象
也就是說, 只需知道原型對象的類型,就可以拷貝,?拷貝分為淺拷貝和深拷貝,可參考淺拷貝和深拷貝
?
模式結構
Prototype: 抽象原型類,聲明克隆接口
ConcretePrototypeA: 具體的原型類, 實現克隆操作
模式實現
在java中,有一個Cloneable接口,它的作用是聲明克隆的能力, 一個類只有實現它才可以被拷貝,然后重寫clone(),否則在運行時會拋出CloneNotSupportedException異常
下面是代碼實現,原型類和具體原型類合為一個了
public class Resume implements Cloneable{private String name;public Resume(String name) {this.name = name;}@Overridepublic Resume clone() throws CloneNotSupportedException {return (Resume)super.clone();}} //客戶端 public class PrototypeMain {public static void main(String[] args) throws Exception {Resume resume = new Resume("張三");System.out.println(resume);System.out.println(resume.clone());} }優點及使用場景
優點: 簡化對象的創建過程,隱藏了對象創建的細節,又對性能大大的提高
使用場景:
1.頻繁使用一個對象,比如在循環體中
2.創建過程比較復雜,?在初始化信息不發生變化的情況下
?
轉載于:https://www.cnblogs.com/liuconglin/p/6411732.html
總結
以上是生活随笔為你收集整理的大话设计模式读书笔记--6.原型模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POI搜索简介
- 下一篇: 设计模式学习(三)——装饰器模式