設計模式之 原型模式

2021-07-02 23:56:04 字數 1064 閱讀 2777

本文主要是講述建立型模式中乙個比較特殊的模式-原型模式,這個模式呢,有個最大的特點是轉殖乙個現有的物件,這個轉殖的結果有2種,一種是

是淺複製,另一種是深複製,這裡我們也會**下深複製和淺複製的原理,這樣可能更方便大家理解這個原型模式的使用。我們都知道,建立型模式一般是

用來建立乙個新的物件,然後我們使用這個物件完成一些物件的操作,我們通過原型模式可以快速的建立乙個物件而不需要提供專門的new()操作就可以快

速完成物件的建立,這無疑是一種非常有效的方式,快速的建立乙個新的物件。

原型模式的主要思想是基於現有的物件轉殖乙個新的物件出來,一般是有物件的內部提供轉殖的方法,通過該方法返回乙個物件的副本,這種建立對

象的方式,相比我們之前說的幾類建立型模式還是有區別的,之前的講述的工廠模式與抽象工廠都是通過工廠封裝具體的new操作的過程,返回乙個新的對

象,有的時候我們通過這樣的建立工廠建立物件不值得,特別是以下的幾個場景的時候,可能使用原型模式更簡單也效率更高。

1、如果說我們的物件型別不是剛開始就能確定,而是這個型別是在執行期確定的話,那麼我們通過這個型別的物件轉殖出乙個新的型別更容易。這個

怎麼理解。例如我們有的時候在處理datatable中的記錄進行篩選後,放在乙個新的datatable 中,我們知道如果說2個datatable的架構不同,那麼必須

手動的顯示的賦值,否則無法使用如下方式進行匯入資料:

2、有的時候我們可能在實際的專案中需要乙個物件在某個狀態下的副本,這個前提很重要,這點怎麼理解呢,例如有的時候我們需要對比乙個物件經

過處理後的狀態和處理前的狀態是否發生過改變,可能我們就需要在執行某段處理之前,轉殖這個物件此時狀態的副本,然後等執行後的狀態進行相應的對

比,這樣的應用在專案中也是經常會出現的。

3、當我們在處理一些物件比較簡單,並且物件之間的區別很小,可能只是很固定的幾個屬性不同的時候,可能我們使用原型模式更合適,例如我們生

活中的彩虹的七彩的顏色,等等,我們只需要根據現有的乙個顏色物件,轉殖乙個新的顏色物件,然後修改具體的顏色的值就可以滿足要求,然後如果通過

我們之前講述的建立型工廠,抽象工廠模式等相對來說就引入新的依賴,並且複雜度也有所提高。

設計模式之原型模式

原型模式其實就是從乙個物件再建立乙個可定製的物件,而且不需要知道建立的細節。具體就是說通過複製或者轉殖乙個原型物件產生新的物件 轉殖物件 分為兩種 深複製或者淺複製,這兩種的主要區別是 在原型中如果有物件的引用,淺複製是將引用複製過來了,也就是淺複製和原型中的物件的引用相同,而深複製是將轉殖物件中引...

設計模式之原型模式

include include 此練習為原型模式方法的練習 原型模式揭示了在同一原型上可以通過複製使得 只需要例項化一次,再通過相應的類函式操作可以得到 同一原型下的不同的版本物件 此練習將考慮在實際開發中 比如 工作經歷也是作為乙個類被含在簡歷類中的情況 這情況將涉及到類的引用和深 淺複製 原型基...

設計模式之原型模式

原型模式的思想就是將乙個物件作為原型,對其進行複製 轉殖,產生乙個和原物件類似的新物件 複製過程可分為淺複製和深複製。淺複製是指直接呼叫父類 即object類 的clone方法 super.clone 該方法是本地 native 方法,呼叫該方法clone出來的新物件,基本資料型別的屬性變數是新建立...