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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

23种设计模式简介_设计模式简介

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

23種設計模式簡介

本文是我們名為“ Java設計模式 ”的學院課程的一部分。

在本課程中,您將深入研究大量的設計模式,并了解如何在Java中實現和利用它們。 您將了解模式如此重要的原因,并了解何時以及如何應用模式中的每一個。 在這里查看 !

目錄

1.簡介 2.什么是設計模式 3.為什么使用它們 4.如何選擇和使用一個 5.模式分類
5.1。 創作模式 5.2。 結構模式 5.3。 行為模式

1.簡介

在70年代后期,一位名叫Christopher Alexander的建筑師開始了圖案的概念。 亞歷山大(Alexander)的工作著眼于在特定環境下找到針對特定力量的解決方案的模式。

Christopher Alexander是一位土木工程師和建筑師,他的模式與建筑物的建筑師有關,但是他所做的工作激發了人們對面向對象(OO)社區的興趣,許多創新者開始開發軟件設計模式。 肯特·貝克(Kent Beck)和沃德·坎寧安(Ward Cunningham)是在OOPSLA會議上介紹Smalltalk設計模式的少數人。 詹姆斯·科普林(James Coplien)是另一位積極倡導模式宗旨的人。

很快,OOPSLA的模式社區開始發展,因為它為成員提供了一個共享其模式創新和思想的環境。 圖案運動發展的另一個重要論壇是肯特·貝克(Kent Beck)和格雷迪·布赫(Grady Booch)創立的Hillside Group。

這就是設計模式-旺盛而強大的社區對專業知識的積累。 這是最佳的人群采購。 自從最初的GoF工作以來,模式社區已經發展了十多年,規模龐大且充滿活力。 Grady Booch和Celso Gonzalez一直在收集他們在行業中可以找到的每種模式。 到目前為止,他們有2000多個。

本課程全部關于設計模式。 在本課程中,我們將向您介紹最有用和最著名的設計模式。 在本課程中,首先我們將了解真正的設計模式。 它們有什么用? 為什么要真正使用它們,以及如何使用它們?

稍后,我們還將看到模式的組織方式,并根據其行為和結構將其分為不同的組。

在接下來的幾課中,我們將逐一討論不同的設計模式。 我們將深入并分析每種設計模式,還將看到如何在Java中實現它們。

2.什么是設計模式

作為一個面向對象的開發人員,我們可能會認為我們的代碼包含了面向對象語言所提供的所有好處。 我們編寫的代碼具有足夠的靈活性,以至于我們可以對其進行任何更改,而付出的代價則更少或更少。 我們的代碼是可重用的,因此我們可以在任何地方重用它而不會遇到任何麻煩。 我們可以輕松地維護我們的代碼,對代碼部分的任何更改都不會影響代碼的任何其他部分。

不幸的是,這些優勢并不是憑空產生的。 作為開發人員,我們有責任以一種使我們的代碼靈活,可維護和可重用的方式設計代碼。

設計是一門藝術,它伴隨著經驗。 但是,一些高級和經驗豐富的開發人員已經在面對和解決類似的設計問題時已經編寫了一些解決方案。 這些解決方案稱為設計模式。

設計模式是設計面向對象代碼的經驗。

設計模式是對常見問題的通用可重用解決方案。 這些是經驗豐富的開發人員使用的最佳實踐。 模式不是完整的代碼,但可以用作可應用于問題的模板。 模式是可重用的; 它們可以應用于任何領域的類似設計問題。 換句話說,我們可以將模式視為包含重復出現的設計問題及其解決方案的正式文檔。 在一個實際環境中使用的模式也可以在其他環境中重用。

克里斯托弗曾說過:“每種模式都描述了一個在我們的環境中反復發生的問題,然后描述了該問題的解決方案的核心,這樣您就可以使用該解決方案一百萬次,而無需做任何事情。以相同的方式兩次”。

通常,模式具有四個基本要素:

  • 模式名稱 ,用于為模式提供一個單一且有意義的名稱,該名稱定義了設計問題及其解決方案。 命名設計模式有助于將自身輕松引用給其他人。 提供文檔也變得很容易,正確的詞匯使設計更容易思考。
  • 問題描述了何時應用圖案。 它解釋了問題及其背景。 它可能描述特定的設計問題,例如如何將算法表示為對象。 它可能描述了不靈活設計的癥狀的類或對象結構。 有時,問題將包括在應用此模式有意義之前必須滿足的條件列表。
  • 解決方案描述了構成設計的元素,它們之間的關系,職責和協作。 解決方案不是完整的代碼,但可以作為模板使用代碼來實現。 相反,該模式提供了一個設計問題的抽象描述,以及元素(在本例中為類和對象)的一般布置如何解決該問題的抽象描述。
  • 應用模式的結果和后果 。 軟件的后果通常涉及空間和時間的權衡。 他們也可能解決語言和實施問題。 由于重用通常是面向對象設計中的一個因素,因此模式的后果包括其對系統的靈活性,可擴展性或可移植性的影響。 明確列出這些后果有助于您理解和評估它們。
  • 3.為什么使用它們

    靈活性:使用設計模式,您的代碼將變得靈活。 由于對象之間的松散耦合,這有助于提供正確的抽象級別,這使您的代碼易于更改。

    可重用性:松散耦合且內聚的對象和類可使您的代碼更可重用。 與高度耦合的代碼相比,這種代碼變得易于測試。

    共享詞匯表:共享詞匯表可輕松與其他團隊成員共享您的代碼和思想。 它使與代碼相關的團隊成員之間有了更多的了解。

    捕獲最佳實踐:設計模式捕獲已成功應用于問題的解決方案。 通過學習這些模式和相關問題,一個沒有經驗的開發人員會學到很多有關軟件設計的知識。

    設計模式使重用成功的設計和架構變得更加容易。

    通過將成熟的技術表示為設計模式,可以使新系統的開發人員更容易使用它們。 設計模式可幫助您選擇使系統可重用的設計替代方案,并避免損害可重用性的替代方案。 設計模式甚至可以通過提供對類和對象交互及其基本意圖的明確說明來改善現有系統的文檔編制和維護。 簡而言之,設計模式可幫助設計師更快地“正確”設計。

    4.如何選擇和使用一個

    有多種設計模式可供選擇; 要選擇一個,您必須對其中的每一個都有很好的了解。 許多設計模式看起來非常相似。 它們解決了幾乎類似類型的設計問題,并且具有類似的實現。 為了實現針對特定設計問題的正確設計模式,必須對它們有非常深刻的理解。

    首先,您需要確定所面臨的設計問題。 設計問題可以分為創造性,結構性或行為性。 根據此類別,您可以過濾模式并選擇適當的模式。 例如:

  • 一個類的實例太多,它們僅表示單個事物,這些對象的屬性中的值相同,并且它們僅用作只讀 :您可以針對此設計問題選擇Singleton模式,以確保僅整個應用程序的單個實例。 它還有助于減小內存大小。
  • 類之間過于依賴。 一個類中的更改會影響所有其他從屬類:您可以使用Bridge,Mediator或Command來解決此設計問題。
  • 在代碼的兩個不同部分中有兩個不同的不兼容接口,您需要將一個接口轉換為另一個接口,客戶端代碼使用該接口使整個代碼正常工作:適配器模式適合此問題。
  • 一種設計模式可以用于解決多個設計問題,并且一個設計問題可以通過多個設計模式解決。 可能會有很多設計問題和解決方案,但是,選擇合適的模式取決于您對設計模式的了解和理解。 這也取決于您已經擁有的代碼。

    5.模式分類

    設計模式可以分為以下幾類:

  • 創作模式
  • 結構模式
  • 行為模式
  • 創作模式

    創新設計模式用于設計對象的實例化過程。 創建模式使用繼承來改變對象的創建。

    這些模式中有兩個重復出現的主題。 首先,它們都封裝了有關系統使用哪些具體類的知識。 其次,它們隱藏了這些類的實例是如何創建和組合的。 整個系統對對象的所有了解都是由抽象類定義的它們的接口。 因此,創建模式使您在創建內容,創建者,創建方式和時間方面具有很大的靈活性。

    在某些情況下,兩個或多個模式看起來很適合解決問題。 在其他時候,這兩種模式可以互補。 Builder可以與其他模式一起使用,以實現要構建的組件。

    結構模式

    結構模式與類和對象如何構成更大的結構有關。 結構類模式使用繼承來構成接口或實現。 作為一個簡單的示例,請考慮多重繼承如何將兩個或多個類混合為一個。 結果是一個結合了其父類屬性的類。 這種模式對于使獨立開發的類庫協同工作特別有用。

    結構對象模式不是組成接口或實現,而是描述組成對象以實現新功能的方法。 對象合成的附加靈活性來自于在運行時更改合成的能力,而靜態類合成則無法實現。

    行為模式

    行為模式與算法以及對象之間的職責分配有關。 行為模式不僅描述對象或類的模式,還描述它們之間的通信模式。 這些模式表征了復雜的控制流,在運行時很難遵循。 它們將您的注意力從控制流上移開,讓您僅專注于對象的互連方式。

    行為對象模式使用對象組成而不是繼承。 一些描述了一組對等對象如何協作執行一項單個對象無法單獨執行的任務。 這里的一個重要問題是對等對象如何相互了解。 對等體可以保持彼此之間的顯式引用,但這將增加它們之間的耦合。 在極端情況下,每個對象都會彼此了解。 介體模式通過在對等體之間引入介體對象來避免這種情況。 介體提供松耦合所需的間接定向。

    下表顯示了各自類別下的模式列表:

    創作模式 結構模式 行為模式
    抽象工廠 適配器 責任鏈
    建造者 命令
    工廠方法 綜合 口譯員
    原型 裝飾器 迭代器
    辛格爾頓 正面 調解員
    飛行重量 紀念
    代理 觀察者
    戰略
    模板方法
    游客

    模式清單


    翻譯自: https://www.javacodegeeks.com/2015/09/introduction-to-design-patterns.html

    23種設計模式簡介

    總結

    以上是生活随笔為你收集整理的23种设计模式简介_设计模式简介的全部內容,希望文章能夠幫你解決所遇到的問題。

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