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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

工厂三兄弟之简单工厂模式(二)

發布時間:2025/4/16 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 工厂三兄弟之简单工厂模式(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2 簡單工廠模式概述

?????? 簡單工廠模式并不屬于GoF 23個經典設計模式,但通常將它作為學習其他工廠模式的基礎,它的設計思想很簡單,其基本流程如下:

?????? 首先將需要創建的各種不同對象(例如各種不同的Chart對象)的相關代碼封裝到不同的類中,這些類稱為具體產品類,而將它們公共的代碼進行抽象和提取后封裝在一個抽象產品類中,每一個具體產品類都是抽象產品類的子類;然后提供一個工廠類用于創建各種產品,在工廠類中提供一個創建產品的工廠方法,該方法可以根據所傳入的參數不同創建不同的具體產品對象;客戶端只需調用工廠類的工廠方法并傳入相應的參數即可得到一個產品對象。

?????? 簡單工廠模式定義如下:

?????? 簡單工廠模式(Simple Factory Pattern):定義一個工廠類,它可以根據參數的不同返回不同類的實例,被創建的實例通常都具有共同的父類。因為在簡單工廠模式中用于創建實例的方法是靜態(static)方法,因此簡單工廠模式又被稱為靜態工廠方法(Static Factory Method)模式,它屬于類創建型模式。

??????? 簡單工廠模式的要點在于:當你需要什么,只需要傳入一個正確的參數,就可以獲取你所需要的對象,而無須知道其創建細節。簡單工廠模式結構比較簡單,其核心是工廠類的設計,其結構如圖1所示:

1 ?簡單工廠模式結構圖

?????? 在簡單工廠模式結構圖中包含如下幾個角色:

?????? Factory(工廠角色):工廠角色即工廠類,它是簡單工廠模式的核心,負責實現創建所有產品實例的內部邏輯;工廠類可以被外界直接調用,創建所需的產品對象;在工廠類中提供了靜態的工廠方法factoryMethod(),它的返回類型為抽象產品類型Product

?????? ● Product(抽象產品角色):它是工廠類所創建的所有對象的父類,封裝了各種產品對象的公有方法,它的引入將提高系統的靈活性,使得在工廠類中只需定義一個通用的工廠方法,因為所有創建的具體產品對象都是其子類對象。

?????? ConcreteProduct(具體產品角色):它是簡單工廠模式的創建目標,所有被創建的對象都充當這個角色的某個具體類的實例。每一個具體產品角色都繼承了抽象產品角色,需要實現在抽象產品中聲明的抽象方法。

?????? 在簡單工廠模式中,客戶端通過工廠類來創建一個產品類的實例,而無須直接使用new關鍵字來創建對象,它是工廠模式家族中最簡單的一員。

?????? 在使用簡單工廠模式時,首先需要對產品類進行重構,不能設計一個包羅萬象的產品類,而需根據實際情況設計一個產品層次結構,將所有產品類公共的代碼移至抽象產品類,并在抽象產品類中聲明一些抽象方法,以供不同的具體產品類來實現,典型的抽象產品類代碼如下所示:

abstract class Product {//所有產品類的公共業務方法public void methodSame() {//公共方法的實現}//聲明抽象業務方法public abstract void methodDiff(); }

?????? 在具體產品類中實現了抽象產品類中聲明的抽象業務方法,不同的具體產品類可以提供不同的實現,典型的具體產品類代碼如下所示:

class ConcreteProduct {//實現業務方法public void methodDiff() {//業務方法的實現} }

?????? 簡單工廠模式的核心是工廠類,在沒有工廠類之前,客戶端一般會使用new關鍵字來直接創建產品對象,而在引入工廠類之后,客戶端可以通過工廠類來創建產品,在簡單工廠模式中,工廠類提供了一個靜態工廠方法供客戶端使用,根據所傳入的參數不同可以創建不同的產品對象,典型的工廠類代碼如下所示:

class Factory {//靜態工廠方法public static Product getProduct(String arg) {Product product = null;if (arg.equalsIgnoreCase("A")) {product = new ConcreteProductA();//初始化設置product}else if (arg.equalsIgnoreCase("B")) {product = new ConcreteProductB();//初始化設置product}return product;} }

?????? 在客戶端代碼中,我們通過調用工廠類的工廠方法即可得到產品對象,典型代碼如下所示:

class Client {public static void main(String args[]) {Product product; product = Factory.getProduct("A"); //通過工廠類創建產品對象product.methodSame();product.methodDiff();} }


【作者:劉偉 http://blog.csdn.net/lovelion

?

轉載于:https://www.cnblogs.com/dyllove98/p/3184441.html

總結

以上是生活随笔為你收集整理的工厂三兄弟之简单工厂模式(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 麻豆精品免费 | 超碰在线观看免费版 | 毛片视频网址 | 日本不卡二区 | 国产精品久久久久久久久久久不卡 | 色综合久久久无码中文字幕波多 | 免费在线观看毛片视频 | 精品亚洲国产成av人片传媒 | 九色在线播放 | 秋霞影院午夜 | 在线观看国产一区二区三区 | 久久99久久99精品免观看软件 | 美女屁股眼视频免费 | 亚洲精品66 | 非洲一级片 | 免费网站在线高清观看 | 久久久久久久久一区 | 国产在线123| 色乱码一区二区三区熟女 | 在线免费看91 | 日韩一级一区 | 色秀视频网 | 中文字幕欲求不满 | 久久国产精品久久久 | 日本午夜影视 | 午夜影院在线 | 亚洲v国产 | 伊人影院在线视频 | 91精品久久久久久久99蜜桃 | 成 人免费va视频 | 亚洲一区二区三区四 | 18国产免费视频 | 免费欧美一区 | 体内精69xxxxx| 国产视频91在线 | 精品一区二区久久久久久久网站 | 亚洲伦理自拍 | 午夜免费影院 | 久久激情片 | 国产aa视频| 亚洲色图13p | 麻豆国产尤物av尤物在线观看 | 欧美成人激情在线 | 成人毛片网站 | 快色污| 久久久高清免费视频 | 亚洲精品99久久久久中文字幕 | www.youjizz.com在线观看 | 免费av看片| 国产一区二区视频在线 | 性色欲网站人妻丰满中文久久不卡 | 久久靠逼视频 | 国产精品国产馆在线真实露脸 | 免费在线观看网址入口 | 艹久久| 91精品人妻一区二区三区蜜桃欧美 | 国产欧美日韩在线视频 | 91精品国产综合久久精品 | 国产精品精品久久久 | 在线不卡毛片 | 欧美黄网站在线观看 | 欧美日韩中文国产一区发布 | 日本中出视频 | 中国老熟妇自拍hd发布 | 亚洲综合激情另类小说区 | 国产做a视频| 草比网站| 女生扒开腿让男生操 | 精品国产成人亚洲午夜福利 | 精品在线一区 | 麻豆91茄子在线观看 | 成熟丰满熟妇高潮xxxxx视频 | 亚洲精品爱爱 | 91.久久| 男女野外做受全过程 | 天天综合中文字幕 | 日本阿v视频 | 国产无套内射普通话对白 | 在线观看免费视频国产 | 人人澡人人澡人人 | 久久综合爱 | 九草在线视频 | 永久免费成人代码 | 樱桃成人精品视频在线播放 | 人妻丝袜一区 | 黑人精品xxx一区一二区 | 极品尤物魔鬼身材啪啪仙踪林 | 女女高潮h冰块play失禁百合 | 久久国产黄色片 | 日韩人妻精品一区二区三区视频 | 亚洲一区偷拍 | 性生交大片免费看女人按摩 | 日本激情视频在线观看 | 亚洲精品免费视频 | 欧美嫩草| 特级西西人体 | 用力抵着尿进去了h | 97视频免费看 | 日批视频免费观看 |