第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

設(shè)計(jì)模式:抽象工廠與工廠方法

設(shè)計(jì)模式:抽象工廠與工廠方法

SMILET 2019-10-04 15:15:38
意:問題在帖子末尾。我已經(jīng)閱讀了有關(guān)Abstract Factory vs Factory Method的其他stackoverflow線程。我了解每種模式的意圖。但是,我對(duì)該定義不清楚。Factory Method定義了一個(gè)用于創(chuàng)建對(duì)象的接口,但是讓子類決定要實(shí)例化的對(duì)象。工廠方法允許類將實(shí)例化延遲到子類。相比之下,抽象工廠提供了一個(gè)接口,用于創(chuàng)建相關(guān)或相關(guān)對(duì)象的族,而無需指定其具體類。- 約翰·費(fèi)米內(nèi)拉該抽象工廠看起來非常相似的工廠方法。我畫了一些UML類來說明我的觀點(diǎn)。注意:該圖來自www.yuml.com,因此它們的方向不完全正確。但它是免費(fèi)的服務(wù):)。這些圖可能并不完美。我仍在學(xué)習(xí)GoF設(shè)計(jì)模式。工廠方法:抽象工廠(僅1個(gè)成員):抽象工廠(更多成員):問題:如果抽象工廠只有一個(gè)創(chuàng)建者和一個(gè)產(chǎn)品,那么它仍然是抽象工廠模式嗎?(用于創(chuàng)建家族的界面)可以從接口創(chuàng)建Factory Method具體創(chuàng)建器,還是必須從類創(chuàng)建它?(類將實(shí)例化延遲到子類)如果抽象工廠只能有一個(gè)創(chuàng)建者和一個(gè)產(chǎn)品,那么抽象工廠和工廠方法之間的唯一區(qū)別是前者的創(chuàng)建者是一個(gè)接口,后者的創(chuàng)建者是一個(gè)類嗎?
查看完整描述

3 回答

?
翻翻過去那場(chǎng)雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊

看來,OP的(優(yōu)秀)問題列表已被忽略。當(dāng)前的答案僅提供了經(jīng)過重新定義的定義。因此,我將嘗試簡潔地解決原始問題。


如果抽象工廠只有一個(gè)創(chuàng)建者和一個(gè)產(chǎn)品,那么它仍然是抽象工廠模式嗎?(用于創(chuàng)建家族的界面)

沒有。抽象工廠必須創(chuàng)建多個(gè)產(chǎn)品才能制作“相關(guān)產(chǎn)品系列”。規(guī)范的GoF示例創(chuàng)建ScrollBar()和Window()。優(yōu)點(diǎn)(和目的)是,抽象工廠可以在其多個(gè)產(chǎn)品中強(qiáng)制使用一個(gè)公共主題。


可以從接口創(chuàng)建Factory Method具體創(chuàng)建器,還是必須從類創(chuàng)建它?(類將實(shí)例化延遲到子類)

首先,我們必須注意,GoF編寫本書時(shí)既沒有Java也沒有C#。術(shù)語接口的GoF使用與特定語言引入的接口類型無關(guān)。因此,可以從任何API創(chuàng)建具體的創(chuàng)建者。模式中的重點(diǎn)是API使用了自己的Factory方法,因此只有一個(gè)方法的接口不能是Factory方法,而只能是Abstract Factory。


如果抽象工廠只能有一個(gè)創(chuàng)建者和一個(gè)產(chǎn)品,那么抽象工廠和 工廠方法之間的唯一區(qū)別是前者的創(chuàng)建者是一個(gè)接口,后者的創(chuàng)建者是一個(gè)類嗎?

按照上述答案,該問題不再有效;但是,如果您認(rèn)為抽象工廠和工廠方法之間的唯一區(qū)別是創(chuàng)建的產(chǎn)品數(shù)量,請(qǐng)考慮客戶如何使用這些模式中的每一個(gè)。通常將抽象工廠注入其客戶端,并通過組合/委托進(jìn)行調(diào)用。工廠方法必須被繼承。因此,一切都回到了舊的組合與繼承之爭。


但是這些答案提出了第四個(gè)問題!


由于只有一個(gè)方法的接口不能是工廠方法,而只能是抽象工廠,所以我們?cè)趺捶Q呼只有一個(gè)方法的創(chuàng)建接口?

如果該方法是靜態(tài)的,則通常稱為“ 靜態(tài)工廠”。如果該方法是非靜態(tài)的,則通常稱為簡單工廠。這些都不是GoF模式,但是在實(shí)踐中它們更常用!


查看完整回答
反對(duì) 回復(fù) 2019-10-04
  • 3 回答
  • 0 關(guān)注
  • 729 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)