亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中GOF23的作用是什么

發布時間:2021-07-29 16:56:10 來源:億速云 閱讀:193 作者:Leah 欄目:開發技術

Java中GOF23的作用是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、什么是設計模式

設計模式(Design pattern) 是解決軟件開發某些特定問題而提出的一些解決方案也可以理解成解決問題的一些思路。通過設計模式可以幫助我們增強代碼的可重用性、可擴充性、 可維護性、靈活性好。我們使用設計模式最終的目的是實現代碼的高內聚和低耦合。

二、設計模式的三大分類及關鍵點

Java中GOF23的作用是什么

1、創建型模式

對象實例化的模式,創建型模式用于解耦對象的實例化過程。

單例模式:某個類智能有一個實例,提供一個全局的訪問點。工廠模式:一個工廠類根據傳入的參量決定創建出哪一種產品類的實例。抽象工廠模式:創建相關或依賴對象的家族,而無需明確指定具體類。建造者模式:封裝一個復雜對象的創建過程,并可以按步驟構造。原型模式:通過復制現有的實例來創建新的實例。 2、結構型模式

把類或對象結合在一起形成一個更大的結構。

裝飾器模式:動態的給對象添加新的功能。代理模式:為其它對象提供一個代理以便控制這個對象的訪問。橋接模式:將抽象部分和它的實現部分分離,使它們都可以獨立的變化。適配器模式:將一個類的方法接口轉換成客戶希望的另一個接口。組合模式:將對象組合成樹形結構以表示“部分-整體”的層次結構。外觀模式:對外提供一個統一的方法,來訪問子系統中的一群接口。享元模式:通過共享技術來有效的支持大量細粒度的對象。 3、行為型模式

類和對象如何交互,及劃分責任和算法。

策略模式:定義一系列算法,把他們封裝起來,并且使它們可以相互替換。模板模式:定義一個算法結構,而將一些步驟延遲到子類實現。命令模式:將命令請求封裝為一個對象,使得可以用不同的請求來進行參數化。迭代器模式:一種遍歷訪問聚合對象中各個元素的方法,不暴露該對象的內部結構。觀察者模式:對象間的一對多的依賴關系。仲裁者模式:用一個中介對象來封裝一系列的對象交互。備忘錄模式:在不破壞封裝的前提下,保持對象的內部狀態。解釋器模式:給定一個語言,定義它的文法的一種表示,并定義一個解釋器。狀態模式:允許一個對象在其對象內部狀態改變時改變它的行為。責任鏈模式:將請求的發送者和接收者解耦,使的多個對象都有處理這個請求的機會。訪問者模式:不改變數據結構的前提下,增加作用于一組對象元素的新功能。

三、設計模式的幾種原則

1、單一職責原則

對于一個類,只有一個引起該類變化的原因;該類的職責是唯一的,且這個職責是唯一引起其他類變化的原因。

2、接口隔離原則

客戶端不應該依賴它不需要的接口,一個類對另一個類的依賴應該建立在最小的接口上。

3、依賴倒轉原則

依賴倒轉原則是程序要依賴于抽象接口,不要依賴于具體實現。簡單的說就是要求對抽象進行編程,不要對實現進行編程,這樣就降低了客戶與實現模塊間的耦合。

4、里式代換原則

任何基類可以出現的地方,子類一定可以出現。里氏代換原則是繼承復用的基石,只有當衍生類可以替換基類,軟件單位的功能不受影響時,基類才能真正的被復用,而衍生類也能夠在基類的基礎上增加新的行為。里氏代換原則是對開閉原則的補充。實現開閉原則的關鍵步驟就是抽象化。而基類與子類的繼承關系就是抽象化的具體實現,所以里氏代換原則是對實現抽象化的具體步驟的規范。

5、開閉原則

(1)對于擴展是開放的(Open for extension)。這意味著模塊的行為是可以擴展的。當應用的需求改變時,我們可以對模塊進行擴展,使其具有滿足那些改變的新行為。也就是說,我們可以改變模塊的功能。

(2)對于修改是關閉的(Closed for modification)。對模塊行為進行擴展時,不必改動模塊的源代碼或者二進制代碼。模塊的二進制可執行版本,無論是可鏈接的庫、DLL或者.EXE文件,都無需改動。

6、迪米特法則

迪米特法則又叫做最少知識原則,就是說一個對象應當對其它對象又盡可能少的了解,不和陌生人說話。

7、合成復用原則

合成復用原則要求在軟件復用時,要盡量先使用組合或者聚合等關聯關系來實現,其次才考慮使用繼承關系來實現。如果要使用繼承關系,則必須嚴格遵循里氏替換原則。合成復用原則同里氏替換原則相輔相成的,兩者都是開閉原則的具體實現規范。

設計模式七大原則總結(超詳細)

四、設計模式關系

Java中GOF23的作用是什么

五、設計模式感想

一共有23種設計模式,可以說都是為了提高代碼的可讀性、可擴展性、可復用性、類的可替換性、組件化、可移植性等等特性。通過接口、抽象類、繼承、實現、委托、抽象、面向接口編程、多態、重載、重寫等方式使得代碼的這些特性得以彰顯,可以說只有深刻的理解了這些概念背后的哲學思想才能更好的理解設計模式。在設計模式中有很多思想,比如可以使用委托的不要使用繼承、開閉原則,面向擴展開放,面向修改關閉,里式代換原則,父類一定能被子類代替并使用,反置則不然,面向接口編程,功能層次和實現層次分離(橋接模式)、高內聚低耦合等思想,這些思想都是寶貴的,正是因為這樣的思想的存在才使得代碼的更新換代的時候能夠盡可能少的甚至不用修改之前的代碼,直接加入新的內容。提高軟件的開發周期,便于維護和升級,便于查找和糾錯,易于擴展和使用。

同樣的設計模式主要分為三大類,創建型、行為型、結構型。我們可以簡單的這樣分類,只不過這樣的分類似乎并不準確,不能一語道出所有的本質,設計模式是相互關聯的,有的設計模式內部其實是使用了別的設計模式作為支撐的,但是大體上這樣的一種劃分便于我們去記憶,僅此而已。

六、設計模式回顧

從迭代器開始,我們將類中數據結構的遍歷和類的功能實現分離出來,本質上使用了工廠模式;

其次我們學習了適配器模式,它將不同的接口進行適配,從而便于版本的兼容性以及其他功能;

然后我們學習了模板方法,使用模板面向抽象編程,便于新的子類的實現和管理;

之后學習了工廠模式,其實借用了模板模式來創建產品,是一種非常重要用處很廣的一種方法;

然后我們學習了單例模式,有懶漢式、餓漢式等,生成關于某個類全局唯一的對象,注意多線程的影響;

之后是原型模式,用來復制復雜的對象,使用了clone方法,然后是builder模式,用一個新的類對已有的抽象接口進行整合和編程,從而構建出我們想要的東西;

然后是抽象工廠模式,使用了工廠模式,組合模式等模式,面向抽象編程,將抽象零件組裝成抽象產品,便于具體工廠的創建,提高了代碼的組件化和復用性;

然后是橋接模式,將類的功能層次和實現層次分割開來,便于對應的擴展和使用;

然后是策略模式,可以整體的替換策略,使用也很廣泛;然后是組合模式,保證了同根同源,通過委托添加自己構成遞歸,樹形結構,將具有樹形特點的對象組合起來;

然后是裝飾器模式,和組合模式的結構類似,同樣是遞歸結構,從而可以不斷的裝飾,增加新的功能,很好用;

接著是visitor訪問者模式,通過在類外訪問類中的數據結構從而得到想要的結果,便于程序的可擴展性和組件化;

接著是責任鏈模式,推卸責任,根據問題的大小來考慮自己釋放處理,本質是鏈表,便于職責分明;

然后是外觀模式,通過整合各個類之間的調用關系,組建成了統一的接口(API),便于外部類的調用;

接著是仲裁者模式,將很多類之間互相關聯的關系交給仲裁者處理,省去了各個類之間的嵌套和調動,有利于高內聚和低耦合,思路清晰,便于擴展;

然后是觀察者模式,通過互相委托從而能夠在被觀察的類發生改變的時候得到相應的改變的信息并且處理;

然后是備忘錄模式,通過在某一時刻的狀態保存下來,便于恢復,在游戲中使用的比較多;

然后是狀態模式,將狀態當做類,從而職責分明,解除了很多繁瑣的if和else這些分支邏輯,便于擴展;

然后是享元模式,輕量級對象,通過共用不變對象來實現;

然后是代理模式,懶加載真正的服務器,加快訪問速度,代理是幫助服務器代理的;

然后是命令模式,將命令當做類,通過保存一些列命令,從而能夠隨時執行這些命令,需要清除命令的本質就是一些操作和數據;

最后是解釋器模式,利用編程原理的方法,來更高層次的封裝代碼,將自己開發的java代碼當做編譯系統,從而不用改變java代碼只修改更高語言層次的代碼就能實現不同的功能。 

看完上述內容,你們掌握Java中GOF23的作用是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凭祥市| 武义县| 遂宁市| 宝鸡市| 磐石市| 北京市| 和田市| 弥勒县| 惠安县| 化德县| 普安县| 汶上县| 宜川县| 陈巴尔虎旗| 苗栗县| 阜宁县| 双柏县| 崇信县| 河津市| 枝江市| 长治县| 南昌县| 华容县| 乐清市| 隆回县| 嘉义县| 桐庐县| 吉林省| 浦城县| 固镇县| 蕲春县| 临沭县| 澜沧| 乃东县| 泸溪县| 巨野县| 化州市| 宁海县| 通江县| 孝义市| 九龙坡区|