最近擠了擠時間出來看了下設計模式,汗!總算來總結點東東了,最近專案忙得暈頭轉向了啊t.t好了言歸正傳,開始總結。
理論定義來一套:設計模式(design patterns)是一套被反覆使用、多數人知曉的、經過分類編目的、**設計經驗的總結。使用設計模式是為了可重用**,讓**更容易被他人理解、保證**可靠性。
設計模式的分類
設計模式主要分為三大類(主要是這二十三種):
建立型模式:建立物件時,不再由我們直接例項化物件;而是根據特定場景,由程式來確定建立物件的方式,從而保證更大的效能、更好的架構優勢。
共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式
結構型模式:用於幫助將多個物件組織成更大的結構。
共七種:介面卡模式adapter、裝飾器模式decorator、**模式proxy、外觀模式、橋接模式bridge、組合模式component、享元模式flyweight。
行為型模式:用於幫助系統間各物件的通訊,以及如何控制複雜系統中流程。
共十一種:策略模式、模板方法模式、觀察者模式、迭代器模式、責任鏈模式、命令模式command、備忘錄模式、狀態模式、訪問者模式、終結者模式、直譯器模式。
常用的設計模式介紹——工廠方法模式
/**
* 定義共同的介面
* @author hacfqx
* */
public inte***ce maker
/**
* 這是製造雪碧的按鈕
* @author hacfqx
* */
public class spritemaker implements maker
}
/**
* 這是雪碧的按鈕
* @author hacfqx
* */
public class colamaker implements maker
}
/**
* 這是多功能飲料機
* @author hacfqx
* */
public class make***ctory else if ("sprite".equals(type))
return null;
}}
多功能飲料機搞定了,小明想喝飲料了,那就來吧
public class factorytest
}
結果肯定是得到了一杯雪碧了,是不是很簡單!
常用的設計模式介紹——抽象工廠模式
時間久了之後,小明發現這款功能機已經滿足不了,於是他打**給廠家說,這款功能機能不能加點其他飲料的功能。
廠家想了很久答應了,為了防止以後小明提出各種各樣的增加飲料功能,於是乎就有了下面的改造。這種改造不會破壞以前的飲料機製造飲料的功能,僅僅相當於你想要芬達,我給你加乙個芬達的容器在機器上。你想要可樂,我給你加上可樂的容器。
/**
* 廠家提供一些服務
* @author hacfqx
* */
public inte***ce provider
/**
* 廠家提供服務,我給你加乙個芬達容器
* 用於製造芬達
* @author hacfqx
* */
public class fendamake***ctory implements provider
}
**
* 廠家提供服務,我給你加乙個可樂容器
* 用於製造可樂
* @author hacfqx
* */
public class colamake***ctory implements provider
}
/**
* 這是芬達按鈕
* @author hacfqx
* */
public class fendamaker implements maker
}
其他沒有多大的改變
/**
* 定義共同的介面
* @author hacfqx
* */
public inte***ce maker
這時候就試一下吧
public class makertest
}
好了,抽象工廠理解起來還是比較容易,在不破壞基本功能下(不然違背了閉包原則),這裡的意思是擴充套件了芬達容器,不能對可樂雪碧的製造有影響,將他們看做在同乙個工廠內的單獨個體,互不影響,可能這是乙個糟糕的比喻!那就換句話說,抽象工廠模式在這裡的好處就是,作為工廠方,為了顧客提出的各種各樣的增加飲料種類的功能要求,如果你要芬達,作為廠商的我早就知道了你的需求,我只要做乙個實現類,實現maker介面,作為按鈕,同時做乙個芬達容器fendamake***ctory連線著這個fendamaker按鈕...上面已經這樣總結過了,我沒有找到比這更能自我理解抽象工廠的比喻了- -。 設計模式之簡單工廠 工廠方法模式 抽象工廠模式
這裡講三種模式放在一起說明,是因為三種模式關聯性很強 抽象工廠模式簡單化以後就是工廠方法模式,工廠方法模式再簡單化就是簡單工廠模式 簡單工廠模式並沒有被列入到gof的設計模式中 public class factory 簡單工廠類,實現建立產品物件 class factory return prod...
設計模式 工廠模式(工廠方法 抽象工廠)
1 工廠方法模式 factory method 定義乙個用於建立物件的介面,讓子類決定例項化哪個類。工廠方法使乙個類的例項化延遲到其子類。正如建立交通工具,可以通過不同的工廠方法建立所需的物件。類圖 對比 1 工廠方法在產品維度,即類圖中movable方向拓展比較方便,只需增加對應的類及相應的工廠方...
設計模式 工廠方法 抽象工廠模式
在業務邏輯中往往有需要建立物件的需求 如何將這部分邏輯封裝並且使得其能個適應於頻繁的變化呢?簡單工廠模式 將物件建立邏輯封裝隔離在簡單工廠類的方法中。簡單工廠的常見實現方式 1 簡單工廠類以及其建立物件的靜態方法 其客戶可以直接呼叫該類的靜態方法。2 簡單工廠類以及其建立物件的成員方法 其客戶 需要...