日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

北风设计模式课程---2、工厂方法模式

發(fā)布時間:2025/3/16 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 北风设计模式课程---2、工厂方法模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

北風(fēng)設(shè)計模式課程---2、工廠方法模式

一、總結(jié)

一句話總結(jié):

工廠方法模式相對于簡單工廠模式只是修改了 【工廠核心類-將它變成接口】,具體的創(chuàng)建產(chǎn)品的工作交給【工廠核心類的子類】
滿足了開閉原則:不同產(chǎn)品的創(chuàng)建跑到不同的子工廠,比如創(chuàng)建蘋果去蘋果工廠,創(chuàng)建香蕉去香蕉工廠,我的工廠核心類只負(fù)責(zé)定義標(biāo)準(zhǔn)

?

1、工廠方法模式實例?

水果基類(接口):定義蘋果,香蕉的采摘標(biāo)準(zhǔn):蘋果類,香蕉類
水果工廠基類(接口):定義蘋果,香蕉的工廠標(biāo)準(zhǔn):蘋果工廠,香蕉工廠
創(chuàng)建蘋果去蘋果工廠,創(chuàng)建香蕉去香蕉工廠,我的工廠核心類只負(fù)責(zé)定義標(biāo)準(zhǔn)

?

2、工廠方法模式對簡單工廠模式的修改體現(xiàn)在哪里?

工廠核心類變成了接口:將工廠變成接口,將實際創(chuàng)建工作推遲到子類當(dāng)中。
工廠核心類成為一個抽象工廠角色:這樣核心類成為一個抽象工廠角色,僅負(fù)責(zé)具體工廠子類必須實現(xiàn)的接口
工廠子類完成具體的工廠生成工作

?

3、工廠方法模式中包含的角色及其職責(zé)?

1.抽象工廠(Creator)角色:【比如水果工廠】:工廠方法模式的核心,任何工廠類都必須實現(xiàn)這個接口。
2.具體工廠( Concrete? Creator)角色:【比如蘋果工廠,香蕉工廠】:具體工廠類是抽象工廠的一個實現(xiàn),負(fù)責(zé)實例化產(chǎn)品對象。
3.抽象(Product)角色:【比如水果接口,比如定義采摘水果的標(biāo)準(zhǔn)】:工廠方法模式所創(chuàng)建的所有對象的父類,它負(fù)責(zé)描述所有實例所共有的公共接口。
4.具體產(chǎn)品(Concrete Product)角色:【比如蘋果,香蕉】:工廠方法模式所創(chuàng)建的具體實例對象。

?

4、工廠方法模式的別名是什么?

多態(tài)工廠模式:因為具體工廠類都有共同的接口,或者有共同的抽象父類。

?

5、工廠方法模式的核心是什么?

抽象工廠類

?

6、工廠方法模式的好處是?

符合“開放-封閉”原則:當(dāng)系統(tǒng)擴(kuò)展需要添加新的產(chǎn)品對象時,僅僅需要添加一個具體對象以及一個具體工廠對象,原有工廠對象不需要進(jìn)行任何修改,也不需要修改客戶端

?

7、“開放-封閉”原則是什么意思?

開放:有很好的擴(kuò)展性
封閉:擴(kuò)展的時候不去修改原來的類

?

8、創(chuàng)建型設(shè)計模式的作用是什么?

在類創(chuàng)建的時候定義標(biāo)準(zhǔn),發(fā)揮作用

?

9、legend2系統(tǒng)中應(yīng)該工廠方法模式實例?

抽象產(chǎn)品:英雄(接口),里面有個__construct()創(chuàng)建英雄的抽象方法,或者有一個寫入數(shù)據(jù)庫數(shù)據(jù)的抽象方法,還有生成資質(zhì),生成屬性的抽象方法
具體產(chǎn)品:人族英雄,魔族英雄,仙族英雄,__construct()創(chuàng)建英雄完成就寫入數(shù)據(jù)庫
抽象工廠角色:英雄工廠(接口),里面有個getHero抽象方法
具體工廠角色:人族英雄工廠,魔族英雄工廠,返回英雄對象的工廠,創(chuàng)建英雄對象對的時候把英雄對象的數(shù)據(jù)寫到數(shù)據(jù)庫

?

10、如何在實例中使用工廠方法模式?

實例對應(yīng)角色:用實例對應(yīng)好工廠方法模式的四種角色即可,這樣建模超級簡單,(抽象產(chǎn)品,具體產(chǎn)品,抽象工廠角色,具體工廠角色)

?

11、php中的面向?qū)ο笫窃谑裁措A段發(fā)揮作用?

向頁面?zhèn)鬟f數(shù)據(jù) 和? 向數(shù)據(jù)庫書寫數(shù)據(jù) 的時候

?

?

?

二、內(nèi)容在總結(jié)中

1、相關(guān)知識

?

2、java代碼結(jié)構(gòu)

?

?

3、php代碼

?

?

<?php //抽象角色 Interface Fruit{//采集public function get(); };//具體角色1 class Apple implements Fruit{public function get(){echo '采集蘋果<br>';} } //具體角色2 class Banana implements Fruit{public function get(){echo '采集香蕉<br>';} }//抽象工廠角色 interface FruitFactory{//定義工廠生產(chǎn)產(chǎn)品的規(guī)則public static function getFruit(); }//具體工廠角色1:蘋果 class AppleFactory implements FruitFactory{public static function getFruit(){return new Apple();} } //具體工廠角色2:香蕉 class BananaFactory implements FruitFactory{public static function getFruit(){return new Banana();} }//調(diào)用實例 AppleFactory::getFruit()->get(); BananaFactory::getFruit()->get(); ?>

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/Renyi-Fan/p/10947392.html

總結(jié)

以上是生活随笔為你收集整理的北风设计模式课程---2、工厂方法模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。