10 25每日部落格

2022-09-19 03:45:09 字數 1003 閱讀 3918

原型模式

模式動機

在物件導向系統中,使用原型模式來複製乙個物件自身,從而轉殖出多個與原型物件一模一樣的物件。

在軟體系統中,有些物件的建立過程較為複雜,而且有時候需要頻繁建立,原型模式通過給出乙個原型物件來指明所要建立的物件的型別,然後用複製這個原型物件的辦法建立出更多同型別的物件,這就是原型模式的意圖所在。

模式定義

原型模式(prototype pattern):原型模式是一種物件建立型模式,用原型例項指定建立物件的種類,並且通過複製這些原型建立新的物件。原型模式允許乙個物件再建立另外乙個可定製的物件,無須知道任何建立的細節。

原型模式的基本工作原理是通過將乙個原型物件傳給那個要發動建立的物件,這個要發動建立的物件通過請求原型物件拷貝原型自己來實現建立過程。

模式優缺點

原型模式的優點

當建立新的物件例項較為複雜時,使用原型模式可以簡化物件的建立過程,通過乙個已有例項可以提高新例項的建立效率。

可以動態增加或減少產品類。

原型模式提供了簡化的建立結構。

可以使用深轉殖的方式儲存物件的狀態。

模式優缺點

原型模式的缺點

需要為每乙個類配備乙個轉殖方法,而且這個轉殖方法需要對類的功能進行通盤考慮,這對全新的類來說不是很難,但對已有的類進行改造時,不一定是件容易的事,必須修改其源**,違背了「開閉原則」。

在實現深轉殖時需要編寫較為複雜的**。

模式適用環境

在以下情況下可以使用原型模式:

建立新物件成本較大,新的物件可以通過原型模式對已有物件進行複製來獲得,如果是相似物件,則可以對其屬性稍作修改。

如果系統要儲存物件的狀態,而物件的狀態變化很小,或者物件本身佔記憶體不大的時候,也可以使用原型模式配合備忘錄模式來應用。相反,如果物件的狀態變化很大,或者物件占用的記憶體很大,那麼採用狀態模式會比原型模式更好。

需要避免使用分層次的工廠類來建立分層次的物件,並且類的例項物件只有乙個或很少的幾個組合狀態,通過複製原型物件得到新例項可能比使用建構函式建立乙個新例項更加方便。

每日總結10 25

先貼上今日的任務計畫表以及相應的實施完成情況 暫且撇棄仍然未把任務全部完成一說,較之之前,能夠完成的任務有所增長,這是乙個小小的進步!總結反省 1.今天下午和今天晚上還是沒能管理好自己的時間,主要原因是睏意很重,不能很好地集中精神 2.對於自己已經構建好的思維導圖,仍然沒能安排時間進行複習與鞏固 3...

12 10每日部落格

今天記錄一下我在使用layui元件中的 的時候遇到的問題,就是如何將mysql讀取到的資料顯示在 元件中的url指向的就可以是後台的servlet,然後servlet向前臺傳遞的是乙個json資料,並且要按照官網中的案例進行返回,不然前台的介面無法載入資料並且會提示介面異常。這裡的json是 net...

12 9每日部落格

首先給資料集名稱那一列 新增點選事件 然後呼叫乙個js方法,這個方法中包含layui元件中的彈出視窗的方法 function showthisdatatab name,size 然後我的思路是將這個資料集的名稱或者id傳遞給要開啟的那個html網頁,在那個網頁中在呼叫乙個資料 請求後台並得到資料庫的...