溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java中有幾種創(chuàng)建型模式

發(fā)布時(shí)間:2020-06-23 14:33:03 來(lái)源:億速云 閱讀:154 作者:元一 欄目:編程語(yǔ)言

java中有幾種創(chuàng)建型模式?針對(duì)這個(gè)問題,這篇文章給出了相對(duì)應(yīng)的分析和解答,希望能幫助更多想解決這個(gè)問題的朋友找到更加簡(jiǎn)單易行的辦法。

在軟件工程中,創(chuàng)建型模式是處理對(duì)象創(chuàng)建的設(shè)計(jì)模式,試圖根據(jù)實(shí)際情況使用合適的方式創(chuàng)建對(duì)象?;镜膶?duì)象創(chuàng)建方式可能會(huì)導(dǎo)致設(shè)計(jì)上的問題,或增加設(shè)計(jì)的復(fù)雜度。創(chuàng)建型模式通過(guò)以某種方式控制對(duì)象的創(chuàng)建來(lái)解決問題。
創(chuàng)建型模式由兩個(gè)主導(dǎo)思想構(gòu)成。一是將系統(tǒng)使用的具體類封裝起來(lái),二是隱藏這些具體類的實(shí)例創(chuàng)建和結(jié)合的方式。
創(chuàng)建型模式又分為對(duì)象創(chuàng)建型模式和類創(chuàng)建型模式。對(duì)象創(chuàng)建型模式處理對(duì)象的創(chuàng)建,類創(chuàng)建型模式處理類的創(chuàng)建。詳細(xì)地說(shuō),對(duì)象創(chuàng)建型模式把對(duì)象創(chuàng)建的一部分推遲到另一個(gè)對(duì)象中,而類創(chuàng)建型模式將它對(duì)象的創(chuàng)建推遲到子類中。

1、PROTOTYPE舉例:跟MM用QQ聊天,一定要說(shuō)些深情的話語(yǔ)了,我搜集了的情話,需要時(shí)只要copy出來(lái)放到QQ里面就行了,

這就是我的情話prototype了。

原始模型模式:通過(guò)給出一個(gè)原型對(duì)象來(lái)指明所要?jiǎng)?chuàng)建的對(duì)象的類型,然后用復(fù)制這個(gè)原型對(duì)象的方法創(chuàng)建出更多同類型的對(duì)象。原

始模型模式允許動(dòng)態(tài)的增加或減少產(chǎn)品類,產(chǎn)品類不需要非得有任何事先確定的等級(jí)結(jié)構(gòu),原始模型模式適用于任何的等級(jí)結(jié)構(gòu)。缺

點(diǎn)是每一個(gè)類都必須配備一個(gè)克隆方法。

2、FACTORY METHOD舉例:請(qǐng)MM去麥當(dāng)勞吃漢堡,不同的MM有不同的口味,要每個(gè)都記住是一件煩人的事情,我一般采用

Factory Method模式,帶著MM到服務(wù)員那兒,說(shuō)"要一個(gè)漢堡",具體要什么樣的漢堡呢,讓MM直接跟服務(wù)員說(shuō)就行了。

工廠方法模式:核心工廠類不再負(fù)責(zé)所有產(chǎn)品的創(chuàng)建,而是將具體創(chuàng)建的工作交給子類去做,成為一個(gè)抽象工廠角色,僅負(fù)責(zé)給出具

體工廠類必須實(shí)現(xiàn)的接口,而不接觸哪一個(gè)產(chǎn)品類應(yīng)當(dāng)被實(shí)例化這種細(xì)節(jié)。

3、FACTORY舉例:追MM少不了請(qǐng)吃飯了,麥當(dāng)勞的雞翅和肯德基的雞翅都是MM愛吃的東西,雖然口味有所不同,但不管你帶

MM去麥當(dāng)勞或肯德基,只管向服務(wù)員說(shuō)"來(lái)四個(gè)雞翅"就行了。麥當(dāng)勞和肯德基就是生產(chǎn)雞翅的Factory。

工廠模式:客戶類和工廠類分開。消費(fèi)者任何時(shí)候需要某種產(chǎn)品,只需向工廠請(qǐng)求即可。消費(fèi)者無(wú)須修改就可以接納新產(chǎn)品。缺點(diǎn)是

當(dāng)產(chǎn)品修改時(shí),工廠類也要做相應(yīng)的修改。如:如何創(chuàng)建及如何向客戶端提供。

4、SINGLETON舉例:有6個(gè)漂亮的老婆,她們的老公都是我,我就是我們家里的老公Sigleton,她們只要說(shuō)道"老公",都是指的同一個(gè)

人,那就是我。單例模式:?jiǎn)卫J酱_保某一個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例單例模式。單例模式只

應(yīng)在有真正的"單一實(shí)例"的需求時(shí)才可使用。

關(guān)于java中的創(chuàng)建型模式就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI