4.java設計模式-原型模式(prototype)
在《JAVA與模式》一書中開頭是這樣描述原型(Prototype)模式的:
原型模式屬於物件的建立模式。通過給出一個原型物件來指明所有建立的物件的型別,然後用複製這個原型物件的辦法創建出更多同類型的物件。這就是選型模式的用意。
1.原型模式的結構
原型模式要求物件實現一個可以“克隆”自身的介面,這樣就可以通過複製一個例項物件本身來建立一個新的例項。這樣一來,通過原型例項建立新的物件,就不再需要關心這個例項本身的型別,只要實現了克隆自身的方法,就可以通過這個方法來獲取新的物件,而無須再去通過new來建立。
原型模式有兩種表現形式:(1)簡單形式、(2)登記形式,這兩種表現形式僅僅是原型模式的不同實現。
1. 簡單形式的原型模式
這種形式涉及到三個角色:
(1)客戶(Client)角色:客戶類提出建立物件的請求。
(2)抽象原型(Prototype)角色:這是一個抽象角色,通常由一個Java介面或Java抽象類實現。此角色給出所有的具體原型類所需的介面。
(3)具體原型(Concrete Prototype)角色:被複制的物件。此角色需要實現抽象的原型角色所要求的介面。
相關推薦
重寫原型物件(prototype)
重寫後constructor屬性的變化以及處理 //建立一個Parent例項 function Parent() { this.name = "wgh"; } //重寫Parent的原型物件,併為其手動新增constructor屬性,注意在ECMAScript5中預設的
【Javascript基礎篇】—--原型物件(prototype)的三個常用方法
【前言】 每一個函式都有自己的prototype屬性,而該屬性所儲存的是原型物件。在上一篇中我們講解了通過原型物件動態新增屬性,結果我們介紹原型物件的三個常用方法。 【內容】 原型方法: ①
原型物件(prototype)
我們建立的每個函式都有一個prototype(原型)屬性,這個屬性是一個指標,指向一個物件,而這個物件的用途是包含可以由特定型別的所有例項共享的屬性和方法。即:通過呼叫建構函式而建立的那個物件例項的原型物件。 function Person(){}; Person.pro
4.java設計模式-原型模式(prototype)
在《JAVA與模式》一書中開頭是這樣描述原型(Prototype)模式的: 原型模式屬於物件的建立模式。通過給出一個原型物件來指明所有建立的物件的型別,然後用複製這個原型物件的辦法創建出更多同類型的物件。這就是選型模式的用意。 1.原型模式的結構 原型模式要求物件實現一個可以“克隆”自
java設計模式-原型(prototype)
需要 nal ava === exc AR 多資源 創建對象 () 有時候創建對象是需要耗費很多資源,但是每個對象之間又有大量的重復。我們可以選擇在創建好一個對象後,以之作為模板克隆出其他對象,稍作修改,即可用於其他地方。 需要實現Cloneable接口,重寫clone(
淺談Java設計模式(五)原型模式(Prototype)
前言: 原型模式雖然是建立型的模式,但是與工程模式沒有關係,從名字即可看出,該模式的思想就是將一個物件作為原型,對其進行復制、克隆,產生一個和原物件類似的新物件。本小結會通過物件的複製,進行講解。在Java中,複製物件是通過clone()實現的,先建立一個原型類: publ
JAVA設計模式之原型模式(prototype)
原型模式: 原型模式又叫克隆模式 Java自帶克隆模式 實現克隆模式必須實現Cloneable 介面,如果不實現會發生java.lang.CloneNotSupportedException異常 當某個類的屬性已經設定好需要建立很多相同屬性值的物件的時候使用clone模式非常方便 使用clone模式不見得比
設計模式的征途—5.原型(Prototype)模式
pla width 共享 太多的 isp text 一模一樣 軟件 集合 相信大多數的人都看過《西遊記》,對孫悟空拔毛變出小猴子的故事情節應該都很熟悉。孫悟空可以用猴毛根據自己的形象復制出很多跟自己一模一樣的小猴兵出來,其實在設計模式中也有一個類似的模式,我們可以通過一個原
【Unity與23種設計模式】原型模式(Prototype)
模式 設計模式 unity 復制 ref 遊戲對象 代碼 設計 程序代碼 GoF中定義: “使用原型對象來產生指定類的對象,所以產生對象時,是使用復制原型對象來完成。” Unity中 開發者可以組裝遊戲對象 它可以包括復雜的組件 組裝好了之後,就可以將其存儲為Pre
設計模式-原型(Prototype)
har attribute public pub private subclass imp 產生 模版 2018-1-12 by Atlas UML 原型模式的核心就是復制,表現到java語言就是實現Cloneable,實現clone方法,具體一點,就是clon
設計模式---對象創建模式之原型模式(prototype)
col 具體類 不同 new mark out 初始化 isp clas 一:概念 原型模式(Prototype Pattern) 實際上就是動態抽取當前對象運行時的狀態 Prototype模式是一種對象創建型模式,它采取復制原型對象的方法來創建對象的實例
(轉載)24種設計模式--原型模式【Prototype Pattern】
dex clone() new t 分享圖片 object try arr 建立 不同 今天我們來講原型模式,這個模式的簡單程度是僅次於單例模式和叠代器模式,非常簡單,但是要使用好這個模式還有很多註意事項。我們通過一個例子來解釋一下什麽是原型模式。 現在電子賬單越來越流
設計模式(5)—— 建立型 —— 原型(Prototype)
導航 介紹原型模式的基本特點,物件拷貝的運用 。要理解 淺度拷貝 和 深度拷貝 的區別和使用。 原型設計模式介紹 定義:指原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件 特點:不需要知道任何建立細節,不呼叫建構函式 型別:建立型
淺談Java設計模式——原型模式(Prototype)
一、概述 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。 二、使用場景 1.當一個系統應該獨立於它的產品建立、構成和表示時。 2.當要例項化的類是在執行時刻指定時,例如,通過動態裝載。 3.為了避免建立一個與產品類層次平行的工廠類
小菜學習設計模式(四)—原型(Prototype)模式
1 /// <summary> 2 /// 心臟類 3 /// </summary> 4 public class Heart 5 { 6 private int _size; 7 p
研磨設計模式 之 原型模式(Prototype)1 ——跟著cc學設計系列
9.1 場景問題 9.1.1 訂單處理系統 考慮這樣一個實際應用:訂單處理系統。 現在有一個訂單處理的系統,裡面有個儲存訂單的業務功能,在這個業務功能裡面,客戶有這麼一個需求:每當訂單的預定產品數量超過1000的時候,就需要把訂單拆成兩份訂單來儲存,如果拆成兩份訂單
研磨設計模式 之 原型模式(Prototype)2 ——跟著cc學設計系列
9.2 解決方案 9.2.1 原型模式來解決 用來解決上述問題的一個合理的解決方案就是原型模式。那麼什麼是原型模式呢? (1 )原型模式定義 (2 )應用原型模式來解決的思路 仔細分析上面的問題,在saveOrder方法裡面,已經有了訂單介面型別的物件例項,是從外部傳入的,但是這裡只是知道這
軟體設計模式——原型模式(Prototype)
定義與結構 原型模式屬於物件建立模式,我們從名字即可看出該原型模式的思想就是將一個物件作為原型,其進行復制、克隆產生和類似的新物件。GOF給它的定義為:用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。 Java 中提供了clone()方法
設計模式 | 原型模式(prototype)
har 細節 info 克隆 proto trac ring 隱藏 內存 定義: 用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。 結構:(書中圖,侵刪) 一個申明克隆自己的接口 若幹具體的需要克隆自己的類 這個結構很簡單,而且在Java
C#設計模式-原型模式(Prototype Pattern)
引言 在軟體開發過程中,我們習慣使用new來建立物件。但是當我們建立一個例項的過程很昂貴或者很複雜,並且需要建立多個這樣的類的例項時。如果仍然用new操作符去建立這樣的類的例項,會導致記憶體中多分配一個一樣的類例項物件,增加建立類的複雜度和消耗更多的記憶體空間。 如果採用簡單工廠模式來建立這樣的系統