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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

工厂方法讲解

發布時間:2024/4/13 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 工厂方法讲解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們學習工廠方法,我們看一下工廠方法的定義,定義一個創建對象的接口,注意創建對象的接口,但是讓實現這個接口的類來決定實例化哪個類,工廠方法讓類的實例推遲到子類中進行,回想一下簡單工廠,類型也是創建型,創建對象往往需要非常復雜的過程,那創建對象也可能會導致大量的重復代碼,工廠模式通過單獨的一個方法,來解決這些問題,有子類來實現這個方法,這個也非常好記,這個模式兩個簡單的詞語,創建工廠,創建對象用的,通過子類實現方法創建對象,那我們接著來看一下

我們接著來看工廠方法應用的場景,首先創建對象需要大量重復的代碼,這個時候就可以考慮工廠方法適不適合在這里,客戶端不依賴于產品類實例如何被創建,實現等細節,也就是說我們應用層的代碼,不依賴于這產品實例如何被實現的,那一個類通過其子類來指定創建哪個對象,同樣的工廠方法呢,在這個模式中,不需要具體類的類名,你只需要工廠就可以,具體的對象都由具體的工廠來創建的,客戶端只需要我的產品是在哪個工廠里,那在這種模式當中,利用面向對象的多態性,和里氏替換原則,所以我們用這個模式,寫的程序,在運行的時候,子類對象將覆蓋父類對象,從而使系統更容易擴展,同時注意一下,我們的定義中也說了,工廠方法讓類的實例化推遲到子類中進行,那可以回想一下簡單工廠,類型也是創建型把創建對象的過程呢,推遲到子類來實現,所以創建對象的任務就委托給多個工廠子類中的某一個,客戶端在使用時,無須關心是哪一個子類創建,需要的時候呢,如果需要動態指定,我們還可以把工廠類名配置到配置文件上,數據庫中動態創建

我們繼續來看工廠方法的優點,用戶只需關心所需產品對應的工廠,無須關心創建細節,加入新的產品是符合開閉原則的,提高可擴展性,那我們來解讀一下,在工廠方法模式中,我們用它來創建所需要的產品,同時又隱藏了實例化的細節,我們只需要關心產品所需要的工廠,無須關心創建細節,那對于工廠角色和產品角色,這方面的多態性設計,他可以使工廠自主,確定創建何種對象,而如何創建這個對象的細節,則完全封裝在具體的工廠內部

那我們繼續來看一下,工廠方法也是有缺點的,類的個數容易過多,增加復雜度,同時增加了系統的抽象性和理解難度,那設計模式也是一樣,根據我們實際的應用場景,業務模型,來考慮,也不能過分的遵守設計原則和使用設計模式,這里面都是一個平衡,那類的個數容易過多怎么理解呢,后續coding也會領著大家來看,這里面先簡單說一下,那我們在添加新產品的時候,我們要編寫新的產品類,而且要對應具體的工廠類,所以類的個數會增加,那類的個數增加,系統的復雜度也就增加了,工廠方法本身也是利用了抽象,所以這里我們會引入動態層,可能還會增加反射這些技術,也增加系統的實現難度,這個肯定是小case,我們接下來一起coding,然后學習工廠方法這個模式演進的UML,然后一起來解析一些源碼

?

總結

以上是生活随笔為你收集整理的工厂方法讲解的全部內容,希望文章能夠幫你解決所遇到的問題。

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