中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

23種設計模式知識點詳細解析(含PDF學習資料)-創(chuàng)新互聯(lián)

23種設計模式知識點詳細解析(含PDF學習資料)

為密云等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及密云網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為做網(wǎng)站、成都網(wǎng)站建設、密云網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

前言:

Java 中一般認為有 23 種設計模式,我們不需要所有的都會,但是其中常用的幾種設計模式應該去掌握。下面列出了所有的設計模式。雖然不需要全會,當然能掌握的越多越好。

總體來說設計模式分為三大類:

創(chuàng)建型模式共5種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

結(jié)構(gòu)型模式共7種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。

行為型模式共11種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態(tài)模式、訪問者模式、中介者模式、解釋器模式。

23種設計模式知識點詳細解析(含PDF學習資料)

由于篇幅的限制,沒有辦法把23種設計模式全部詳細的分享給大家,但是整理成了Pdf資料可以分享,關(guān)注我的供種號(Java周某人)即可

一.單例模式(Singleton Pattern)

定義:

Ensure a class has only one instance, and provide a global point of accessto it.(確保某一個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例。)

通用代碼(是線程安全的)

23種設計模式知識點詳細解析(含PDF學習資料)

使用場景:

● 要求生成唯一序列號的環(huán)境;

● 在整個項目中需要一個共享訪問點或共享數(shù)據(jù),例如一個 Web 頁面上的計數(shù)器,可以不用把每次刷新都記錄到數(shù)據(jù)庫中,使用單例模式保持計數(shù)器的值,并確保是線程安全的;

● 創(chuàng)建一個對象需要消耗的資源過多,如要訪問 IO 和數(shù)據(jù)庫等資源;

● 需要定義大量的靜態(tài)常量和靜態(tài)方法(如工具類)的環(huán)境,可以采用單例模式(當然,也可以直接聲明為 static 的方式)。

線程不安全實例:

23種設計模式知識點詳細解析(含PDF學習資料)

23種設計模式知識點詳細解析(含PDF學習資料)

解決辦法:

在 getSingleton 方法前加 synchronized 關(guān)鍵字,也可以在 getSingleton 方法內(nèi)增加 synchronized 來實現(xiàn)。最優(yōu)的辦法是如通用代碼那樣寫。

二.工廠模式

定義:

Define an interface for creating an object,but let subclasses decide whichclass to instantiate.Factory Method lets a class defer instantiation to subclasses.(定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。)

Product 為抽象產(chǎn)品類負責定義產(chǎn)品的共性,實現(xiàn)對事物最抽象的定義;Creator 為抽象創(chuàng)建類,也就是抽象工廠,具體如何創(chuàng)建產(chǎn)品類是由具體的實現(xiàn)工廠 ConcreteCreator 完成的。

具體工廠類代碼:

23種設計模式知識點詳細解析(含PDF學習資料)

簡單工廠模式:

一個模塊僅需要一個工廠類,沒有必要把它產(chǎn)生出來,使用靜態(tài)的方法

多個工廠類:

每個人種(具體的產(chǎn)品類)都對應了一個創(chuàng)建者,每個創(chuàng)建者獨立負責創(chuàng)建對應的產(chǎn)品對象,非常符合單一職責原則

代替單例模式:

單例模式的核心要求就是在內(nèi)存中只有一個對象,通過工廠方法模式也可以只在內(nèi)存中生產(chǎn)一個對象

延遲初始化:

ProductFactory 負責產(chǎn)品類對象的創(chuàng)建工作,并且通過 prMap 變量產(chǎn)生一個緩存,對需要再次被重用的對象保留

使用場景:jdbc 連接數(shù)據(jù)庫,硬件訪問,降低對象的產(chǎn)生和銷毀

三.抽象工廠模式(Abstract FactoryPattern)

定義:

Provide an interface for creating families of related or dependent objectswithout specifying their concrete classes.(為創(chuàng)建一組相關(guān)或相互依賴的對象提供 一個接口,而且無須指定它們的具體類。)

抽象工廠類代碼:

23種設計模式知識點詳細解析(含PDF學習資料)

使用場景:

一個對象族(或是一組沒有任何關(guān)系的對象)都有相同的約束。

涉及不同操作系統(tǒng)的時候,都可以考慮使用抽象工廠模式

四.模板方法模式(Template MethodPattern)

定義:

Define the skeleton of an algorithm in an operation,deferring some stepstosubclasses.Template Method lets subclasses redefine certain steps of analgorithm without changing the algorithm's structure.(定義一個操作中的算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。)

AbstractClass 叫做抽象模板,它的方法分為兩類:

● 基本方法

基本方法也叫做基本操作,是由子類實現(xiàn)的方法,并且在模板方法被調(diào)用。

● 模板方法

可以有一個或幾個,一般是一個具體方法,也就是一個框架,實現(xiàn)對基本方法的調(diào)度,完成固定的邏輯。注意: 為了防止惡意的操作,一般模板方法都加上 final 關(guān)鍵字,不允許被覆寫。

具體模板:

ConcreteClass1 和 ConcreteClass2 屬于具體模板,實現(xiàn)父類所定義的一個或多個抽象方法,也就是父類定義的基本方法在子類中得以實現(xiàn)

使用場景:

● 多個子類有公有的方法,并且邏輯基本相同時。

● 重要、復雜的算法,可以把核心算法設計為模板方法,周邊的相關(guān)細節(jié)功能則由

各個子類實現(xiàn)。

● 重構(gòu)時,模板方法模式是一個經(jīng)常使用的模式,把相同的代碼抽取到父類中,然后通過鉤子函數(shù)(見“模板方法模式的擴展”)約束其行為。

五:建造者模式(Builder Pattern)

定義:

Separate the construction of a complex object from its representation sothat the same construction process can create different representations.(將一個復雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。)

● Product 產(chǎn)品類

通常是實現(xiàn)了模板方法模式,也就是有模板方法和基本方法,例子中的

BenzModel 和 BMWModel 就屬于產(chǎn)品類。

● Builder 抽象建造者

規(guī)范產(chǎn)品的組建,一般是由子類實現(xiàn)。例子中的 CarBuilder 就屬于抽象建造者。

● ConcreteBuilder 具體建造者

實現(xiàn)抽象類定義的所有方法,并且返回一個組建好的對象。例子中的 BenzBuilder和 BMWBuilder 就屬于具體建造者。

● Director 導演類

負責安排已有模塊的順序,然后告訴 Builder 開始建造

使用場景:

● 相同的方法,不同的執(zhí)行順序,產(chǎn)生不同的事件結(jié)果時,可以采用建造者模式。

● 多個部件或零件,都可以裝配到一個對象中,但是產(chǎn)生的運行結(jié)果又不相同時,則可以使用該模式。

● 產(chǎn)品類非常復雜,或者產(chǎn)品類中的調(diào)用順序不同產(chǎn)生了不同的效能,這個時候使用建造者模式非常合適。

建造者模式與工廠模式的不同:

建造者模式最主要的功能是基本方法的調(diào)用順序安排,這些基本方法已經(jīng)實現(xiàn)了,順序不同產(chǎn)生的對象也不同;工廠方法則重點是創(chuàng)建,創(chuàng)建零件是它的主要職責,組裝順序則不是它關(guān)心的。

總結(jié):

由于篇幅的限制,沒有辦法把23種設計模式全部詳細的分享給大家,但是整理成了Pdf資料可以分享給大家,有需要此PDF文檔資料的可以找我領取,希望可以幫助到大家學習。

領取方式:關(guān)注我的供種號(Java周某人)即可

23種設計模式知識點詳細解析(含PDF學習資料)

23種設計模式知識點詳細解析(含PDF學習資料)

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。

文章題目:23種設計模式知識點詳細解析(含PDF學習資料)-創(chuàng)新互聯(lián)
標題路徑:http://www.rwnh.cn/article2/copioc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、標簽優(yōu)化、動態(tài)網(wǎng)站、商城網(wǎng)站、微信公眾號搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營
绥阳县| 通江县| 太仓市| 城口县| 临汾市| 伊春市| 富顺县| 林西县| 景洪市| 那曲县| 休宁县| 淮安市| 图片| 云浮市| 灵丘县| 阿鲁科尔沁旗| 定安县| 海宁市| 元朗区| 图木舒克市| 朝阳市| 大同县| 基隆市| 宜城市| 宝应县| 大新县| 南开区| 阳信县| 会泽县| 刚察县| 南丰县| 墨竹工卡县| 手游| 秦安县| 皮山县| 高密市| 丹巴县| 淮北市| 铜山县| 新安县| 丰原市|