更新時(shí)間:2020-05-28 15:14:34 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3505次
設(shè)計(jì)模式(Design pattern)是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過(guò)分類編目的代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié),它與具體的語(yǔ)言無(wú)關(guān),是一種思想,掌握了面向?qū)ο蟮乃枷耄趴梢愿玫睦斫庠O(shè)計(jì)模式,而反之亦然。
在java中總共有23種設(shè)計(jì)模式,這些設(shè)計(jì)模式分別分為如下幾種類型:
其中,創(chuàng)建型模式有6種,分別為簡(jiǎn)單工廠模式(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)、訪問(wèn)者模式(Visitor)、調(diào)停者模式(Mediator)、備忘錄模式(Memento)、迭代器模式(Iterator)、解釋器模式(Interpreter)
創(chuàng)建模式
生活案例:國(guó)家施行的計(jì)劃生育政策,規(guī)定一對(duì)夫婦只生一胎,剛結(jié)婚時(shí),確定生一胎,生完后無(wú)論如何不能再生,否則違背國(guó)家政策。
程序概念:所謂單例設(shè)計(jì)模式簡(jiǎn)單說(shuō)就是無(wú)論程序如何運(yùn)行,采用單例設(shè)計(jì)模式的類(Singleton類)永遠(yuǎn)只會(huì)有一個(gè)實(shí)例化對(duì)象產(chǎn)生。具體實(shí)現(xiàn)步驟如下:
1)構(gòu)造方法私有化(采用private修飾)。
2)使用靜態(tài)方法調(diào)用得到單例模式對(duì)象。
代碼如下所示:
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();?//兩個(gè)對(duì)象一致
Singleton?s?=?Singleton.getInstance();
}
}
生活案例:一個(gè)賣肉工廠可以生產(chǎn)豬肉、狗肉、羊肉、牛肉等,工廠很清楚有哪些的產(chǎn)品,所以我們只需要工廠提供即可
程序概念:簡(jiǎn)單工廠又叫靜態(tài)工廠,由一個(gè)工廠對(duì)象決定創(chuàng)建哪一個(gè)產(chǎn)品對(duì)象
代碼案例如下:
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();?//獲取豬肉對(duì)象
}else?if(flag==DOG_TYPE){
return?new?Dog();?//獲取狗肉對(duì)象
}
return?null;
}
}
public?class?Test2?{
public?static?void?main(String?args[])?{
//獲得狗肉對(duì)象
Animal?a?=?Factory.getAnimal(Factory.DOG_TYPE);
}
}
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java常用設(shè)計(jì)模式介紹,超級(jí)詳細(xì)”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743