北京北大青鳥老師介紹,在Java的設(shè)計模式中,我們可以分為三塊:創(chuàng)建型模式、結(jié)構(gòu)型模式、行為模式。本篇內(nèi)容中,北京北大青鳥校區(qū)的老師將先為大家講解第一種模塊:創(chuàng)建型模式。
創(chuàng)建型模式
1、PROTOTYPE
舉例:跟MM用QQ聊天,一定要說些深情的話語了,我搜集了好多肉麻的情話,需要時只要copy出來放到QQ里面就行了,這就是我的情話prototype了。
原始模型模式:通過給出一個原型對象來指明所要創(chuàng)建的對象的類型,然后用復(fù)制這個原型對象的方法創(chuàng)建出更多同類型的對象。原始模型模式允許動態(tài)的增加或減少產(chǎn)品類,產(chǎn)品類不需要非得有任何事先確定的等級結(jié)構(gòu),原始模型模式適用于任何的等級結(jié)構(gòu)。缺點是每一個類都必須配備一個克隆方法。
2、FACTORY
舉例:追MM少不了請吃飯了,麥當(dāng)勞的雞翅和肯德基的雞翅都是MM愛吃的東西,雖然口味有所不同,但不管你帶MM去麥當(dāng)勞或肯德基,只管向服務(wù)員說"來四個雞翅"就行了。麥當(dāng)勞和肯德基就是生產(chǎn)雞翅的Factory.(北京北大青鳥校區(qū))
工廠模式:客戶類和工廠類分開。消費者任何時候需要某種產(chǎn)品,只需向工廠請求即可。消費者無須修改就可以接納新產(chǎn)品。缺點是當(dāng)產(chǎn)品修改時,工廠類也要做相應(yīng)的修改。如:如何創(chuàng)建及如何向客戶端提供。
3、FACTORY METHOD
舉例:請MM去麥當(dāng)勞吃漢堡,不同的MM有不同的口味,要每個都記住是一件煩人的事情,我一般采用Factory Method模式,帶著MM到服務(wù)員那兒,說"要一個漢堡",具體要什么樣的漢堡呢,讓MM直接跟服務(wù)員說就行了。(北京北大青鳥校區(qū))
工廠方法模式:核心工廠類不再負責(zé)所有產(chǎn)品的創(chuàng)建,而是將具體創(chuàng)建的工作交給子類去做,成為一個抽象工廠角色,僅負責(zé)給出具體工廠類必須實現(xiàn)的接口,而不接觸哪一個產(chǎn)品類應(yīng)當(dāng)被實例化這種細節(jié)。
4、SINGLETON
舉例:有6個漂亮的老婆,她們的老公都是我,我就是我們家里的老公Sigleton,她們只要說道"老公",都是指的同一個人,那就是我。
單例模式:單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例單例模式。單例模式只應(yīng)在有真正的"單一實例"的需求時才可使用。(北京北大青鳥校區(qū))