設(shè)計模式介紹
設(shè)計模式(Design pattern)是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的代碼設(shè)計經(jīng)驗的總結(jié),它與具體的語言無關(guān),是一種思想,掌握了面向?qū)ο蟮乃枷?,才可以更好的理解設(shè)計模式,而反之亦然。
在java中總共有23種設(shè)計模式,這些設(shè)計模式分別分為如下幾種類型:
- 創(chuàng)建型模式:針對對象的創(chuàng)建方式
- 結(jié)構(gòu)型模式:針對對象的組成結(jié)構(gòu)的操作
- 行為型模式:針對對象的行為的操作設(shè)置
其中,創(chuàng)建型模式有6種,分別為簡單工廠模式(Simple Factory)、工廠方法模式(Factory Method)、抽象工廠模式(Abstract Factory)、創(chuàng)建者模式(Builder)、原型模式(Prototype)、單例模式(Singleton)
結(jié)構(gòu)型模式有7種,分別為外觀模式/門面模式(Facade門面模式)、適配器模式(Adapter)、代理模式(Proxy)、裝飾模式(Decorator)、橋梁模式/橋接模式(Bridge)、組合模式(Composite)、享元模式(Flyweight)
行為型模式有10種,分別為模板方法模式(Template Method)、觀察者模式(Observer)、狀態(tài)模式(State)、策略模式(Strategy)、職責(zé)鏈模式(Chain of Responsibility)、命令模式(Command)、訪問者模式(Visitor)、調(diào)停者模式(Mediator)、備忘錄模式(Memento)、迭代器模式(Iterator)、解釋器模式(Interpreter)
以下就以一種對創(chuàng)建型模式進行生活案例與程序案例分析:
創(chuàng)建模式
1.單例模式
生活案例:國家施行的計劃生育政策,規(guī)定一對夫婦只生一胎,剛結(jié)婚時,確定生一胎,生完后無論如何不能再生,否則違背國家政策。
程序概念:所謂單例設(shè)計模式簡單說就是無論程序如何運行,采用單例設(shè)計模式的類(Singleton類)永遠只會有一個實例化對象產(chǎn)生。具體實現(xiàn)步驟如下:
1)構(gòu)造方法私有化(采用private修飾)。
2)使用靜態(tài)方法調(diào)用得到單例模式對象。
代碼如下所示:
class?Singleton?{private?static?Singleton?instance?=?new?Singleton();//?餓漢式public?static?Singleton?getInstance()?{return?instance;}private?Singleton()?{?//?構(gòu)造方法封裝為私有化}}public?class?Test2?{public?static?void?main(String?args[])?{Singleton?s?=?Singleton.getInstance();?//兩個對象一致Singleton?s?=?Singleton.getInstance();}}
2.簡單工廠模式
生活案例:一個賣肉工廠可以生產(chǎn)豬肉、狗肉、羊肉、牛肉等,工廠很清楚有哪些的產(chǎn)品,所以我們只需要工廠提供即可
程序概念:簡單工廠又叫靜態(tài)工廠,由一個工廠對象決定創(chuàng)建哪一個產(chǎn)品對象
代碼案例如下:
public?class?Factory{public?static?int?PIG_TYPE?=?1;public?static?int?DOG_TYPE?=?2;public?static?Animal?getAnimal(int?flag)?{if(flag==PIG_TYPE){return?new?Pig();?//獲取豬肉對象}else?if(flag==DOG_TYPE){return?new?Dog();?//獲取狗肉對象}return?null;}}public?class?Test2?{public?static?void?main(String?args[])?{//獲得狗肉對象Animal?a?=?Factory.getAnimal(Factory.DOG_TYPE);}}
以上就是長沙一度軟件培訓(xùn)java培訓(xùn)機構(gòu)的小編針對“Java常用設(shè)計模式介紹,超級詳細”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。