一、 工廠模式:
1.1為什么要用工廠模式
a. 解耦 :把對象的創(chuàng)建和使用的過程分開。
b. 降低代碼重復(fù): 如果創(chuàng)建某個(gè)對象的過程都很復(fù)雜,需要一定的代碼量,而且很多地方都要用到,那么就會有很多的重復(fù)代碼。
c. 降低維護(hù)成本 :由于創(chuàng)建過程都由工廠統(tǒng)一管理,所以發(fā)生業(yè)務(wù)邏輯變化,不需要找到所有需要創(chuàng)建某個(gè)對象的地方去逐個(gè)修正,只需要在工廠里修改即可,降低維護(hù)成本。
1.2 簡單工廠模式
這個(gè)就是簡單的封裝,把對象創(chuàng)建的邏輯封裝起來,客戶端向工廠類傳一個(gè)需要的對象的標(biāo)識,工廠類根據(jù)這個(gè)標(biāo)識創(chuàng)建對應(yīng)的對象返回給客戶端。
通常,工廠類創(chuàng)建的對象繼承于同一個(gè)父類或者具有相同的接口。每個(gè)工廠只創(chuàng)建一類具體類的對象。
1.3抽象工廠模式
抽象工廠模式包括了以下類:
抽象工廠:聲明一組用于創(chuàng)建一族產(chǎn)品的方法,每個(gè)方法對應(yīng)一種對象;在抽象工廠中聲明了多個(gè)工廠方法, 用于創(chuàng)建不同類型的對象, 抽象工廠可以是接口, 也可以是抽象類或者具體類。
具體工廠:具體工廠實(shí)現(xiàn)了抽象工廠,每個(gè)工廠方法返回一個(gè)具體對象,一個(gè)具體工廠所創(chuàng)建的具體對象構(gòu)成一個(gè)族。
抽象類接口:提供一組所有類都具有的業(yè)務(wù)方法。
抽象類:用于實(shí)現(xiàn)抽象接口所定義的業(yè)務(wù)方法,但是該角色對于抽象接口定義的方法只做抽象實(shí)現(xiàn),即所有實(shí)現(xiàn)都被定義為抽象方法,最終的具體實(shí)現(xiàn)全部交給具體類實(shí)現(xiàn)。引入該角色主要是為了根據(jù)聲明不同的抽象類,將類區(qū)分為不同的等級結(jié)構(gòu)。
具體類:該角色繼承抽象類,主要用于實(shí)現(xiàn)抽象類中聲明的抽象方法,完成不同等級結(jié)構(gòu),不同族的業(yè)務(wù)方法的具體實(shí)現(xiàn)。
二、單例模式
單例模式(Singleton Pattern)是 Java 中最簡單的設(shè)計(jì)模式之一。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。這種模式涉及到一個(gè)單一的類,該類負(fù)責(zé)創(chuàng)建自己的對象,同時(shí)確保只有單個(gè)對象被創(chuàng)建。這個(gè)類提供了一種訪問其唯一的對象的方式,可以直接訪問,不需要實(shí)例化該類的對象。
注意:
1、單例類只能有一個(gè)實(shí)例。
2、單例類必須自己創(chuàng)建自己的唯一實(shí)例。
3、單例類必須給所有其他對象提供這一實(shí)例。
意圖:保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問點(diǎn)。
主要解決:一個(gè)全局使用的類頻繁地創(chuàng)建與銷毀。
三、建造者模式
適用場景:一個(gè)復(fù)雜的對象可由多個(gè)類別的子對象組成,每個(gè)類別的子對象可由相似的類創(chuàng)建(同一個(gè)父類)。
例如,去肯德基,漢堡、可樂、薯?xiàng)l、炸雞翅等是不變的,而其組合是經(jīng)常變化的,生成出所謂的"套餐"。一個(gè)典型的套餐可以是一個(gè)漢堡(Burger)和一杯冷飲(Cold drink)。漢堡(Burger)可以是素食漢堡(Veg Burger)或雞肉漢堡(Chicken Burger),它們是包在紙盒中。冷飲(Cold drink)可以是可口可樂(coke)或百事可樂(pepsi),它們是裝在瓶子中。
四、原型模式
似乎對于前端來說,幾乎沒有用過,一些手游引擎里面的clone方法是不是這種模式?
原型模式(Prototype Pattern)是用于創(chuàng)建重復(fù)的對象,同時(shí)又能保證性能。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。
這種模式是實(shí)現(xiàn)了一個(gè)原型接口,該接口用于創(chuàng)建當(dāng)前對象的克隆。當(dāng)直接創(chuàng)建對象的代價(jià)比較大時(shí),則采用這種模式。例如,一個(gè)對象需要在一個(gè)高代價(jià)的數(shù)據(jù)庫操作之后被創(chuàng)建。我們可以緩存該對象,在下一個(gè)請求時(shí)返回它的克隆,在需要的時(shí)候更新數(shù)據(jù)庫,以此來減少數(shù)據(jù)庫調(diào)用。
完。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。