日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式 原型模式_原型设计模式:创建另一个小车

發布時間:2023/12/3 asp.net 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式 原型模式_原型设计模式:创建另一个小车 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

設計模式 原型模式

創建對象確實是一個耗時的過程,也是一件昂貴的事情。 因此,我們現在正冒險節省時間和金錢。 我們該怎么做?

克隆奇跡多莉

有人記得多莉嗎? 是的,是綿羊,是第一個被克隆的哺乳動物。 好吧,我不想深入研究細節,但是關鍵是全部與克隆有關。 這是關于創建副本。

原型設計模式與這個現實示例非常相似。 這是“四個設計模式的幫派”的“創新設計模式”系列的另一部分。

因此,此模式通過克隆對象而不是與Factory模式不同的創建來工作。

何時使用此模式?

  • 創建對象的成本是昂貴還是復雜。
  • 嘗試將應用程序中的類數保持在最低限度時
  • 在運行時添加或刪除對象時
  • 當客戶端應用程序不需要知道對象的創建,組成和表示時。
  • 需要與現有對象相似的對象

原型模式有什么作用?

原型模式允許通過復制現有實例來制作新實例。 原型模式會導致克隆的對象與原始對象不同。 克隆時,原始狀態與克隆相同。 之后,每個對象可以經歷狀態改變。 我們可以修改對象以執行不同的事情。 唯一的好處是,客戶端可以在不知道實例化哪個特定類的情況下創建新實例。

結構體:

原型類通過實現Cloneable接口并使用clone()方法聲明一個用于克隆自身的接口。 具體原型實現了用于克隆自身的clone()方法。 客戶端類通過要求Prototype克隆自己而不是使用new關鍵字來創建一個新對象。

原型圖案結構

事件流以原始類(例如A類)已經初始化和實例化的方式工作。 這是因為我們不能按原樣使用克隆。 我們需要在使用它之前實例化原始類(A類)。 然后,客戶端向Prototype類請求與A類相同類型的新對象。根據所需對象類型的具體原型通過使用clone()方法克隆自身來提供對象。

設想一個場景,其中可能存在一些要求,我們必須從后端獲取用戶配置文件數據以進行多種處理,例如用戶配置文件或角色等,而這些更改不會經常更改。 因此,我們可能不得不使用昂貴的數據庫資源,連接和事務。 在這種情況下,我們可以將數據存儲在單個調用中,并將其緩存在會話中以進行進一步處理。

在上面的示例中,UserProfile對象是將被克隆的主要對象。 UserProfile實現Cloneable接口。 BankDetails和Identity類從UserProfile類繼承。 這些是具體的原型類。

我們引入了一個名為UserProfileRegistry的新類,該類可找到適當的UserProfile實例,然后將克隆適當地返回給客戶端類。

原型模式示例

要在運行時創建另一個對象(要克隆的對象的真實副本)時,需要克隆()一個對象。 真實副本意味著新創建的對象的所有屬性應與您要克隆的對象相同。 如果可以通過使用new實例化該類,則將獲得一個具有所有屬性作為其初始值的Object。 例如,如果您正在設計一個用于執行銀行帳戶交易的系統,那么您將想要制作一個保存您的帳戶信息的對象的副本,對其進行交易,然后將原始對象替換為修改后的對象。 在這種情況下,您可能希望使用clone()而不是new。

有趣的 一點

  • 創意設計模式可以共存,例如,抽象工廠,構建器和原型可以在實現過程中使用單例模式,或者它們也可以單獨工作。
  • 原型模式肯定需要初始化操作,但不需要子類化,但是Factory Method需要子類化,但不需要初始化操作。
  • 在銀行交易昂貴的數據庫查詢中,這是有利的。 緩存可能會有所幫助,并且原型模式是對此情況的最佳解決方案,因為可以使用具有銀行帳戶信息或用戶配置文件信息的對象的副本,對其進行事務處理,然后將原始對象替換為修改后的對象。
  • 上面的示例使用了淺克隆方法。 但是,我們也可以通過深度克隆來實現。 有關此主題的詳細說明,請參見我們的文章: 深入研究克隆

優點:

  • 隱藏了創建對象的復雜性。
  • 客戶可以在不知道對象類型的情況下獲取新對象。
  • 減少子類化。

退稅:

  • 使用原型的缺點是制作對象的副本有時會很復雜。
  • 具有循環引用其他類的類不能真正被克隆。

下載源代碼:


參考: 原型設計模式:在Idiotechie博客上從我們的JCG合作伙伴 Mainak Goswami 創建另一個小車 。

翻譯自: https://www.javacodegeeks.com/2012/11/prototype-design-pattern-creating-another-dolly.html

設計模式 原型模式

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的设计模式 原型模式_原型设计模式:创建另一个小车的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。