真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

設計模式系列-工廠方法模式-創(chuàng)新互聯(lián)

      回顧下設計模式系列《工廠模式》那片文章,里面描述了如何利用工廠模式來模擬一個換燈泡的場景,該場景中模擬了:普通燈泡、節(jié)能燈泡、彩色燈泡。它們統(tǒng)一由一個工廠(工廠類)來創(chuàng)造,我們需要使用哪種燈泡時,只需通知工廠類給我們打造一個相同的燈泡即可,類圖如下:

站在用戶的角度思考問題,與客戶深入溝通,找到舒蘭網(wǎng)站設計與舒蘭網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站制作、網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務覆蓋舒蘭地區(qū)。

     設計模式系列-工廠方法模式

     由上面邊的類圖可見,所有類型的燈泡都由燈泡工廠來創(chuàng)建,那這個時候,制造燈泡的工廠因為企業(yè)擴大了,需要增加產(chǎn)量,那么此時一個工廠肯定是應付不過來了,而且當前一個工廠所造的燈泡種類也多,更加加大了工廠的制造壓力,此時,企業(yè)擴建的最好辦法就是,增加工廠,各自工廠都只專注于一種燈泡的制造。

   1.工廠方法模式

    首先我們來看看什么是工廠方法模式:定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。

    工廠方法模式類圖如下:

    設計模式系列-工廠方法模式

     Product:定義工廠方法所創(chuàng)建的對象的接口。相當于上邊場景中的燈泡抽象。

     ConcreteProduct:具體實現(xiàn)Product抽象的具體產(chǎn)品類。相當于上邊場景中的具體燈泡。

     Creator:聲明工廠方法,該方法返回一個Product類型的對象。

     ConcreteCreator:重定義工廠方法返回一個ConcreteProduct實例。

     可能這會大家看完這個類圖會有點模糊,不過沒關系,接下來我們利用工廠方法模式來實現(xiàn)我們上邊的場景(企業(yè)擴大需要建立更多的工廠)。

     首先,企業(yè)擴大了,需要增加產(chǎn)量建立更多的工廠來創(chuàng)建,為了更好的提高生產(chǎn)效率,每個工廠只專注于生產(chǎn)一種種類的燈泡,利用工廠方法模式設計的類圖如下:

    設計模式系列-工廠方法模式

     邊分析邊實現(xiàn)代碼:

     第一步,工廠擴大了,所造的產(chǎn)品還是燈泡,所以我們還是要把燈泡先抽象出來,為何要抽象請參考《工廠模式》這篇文章。

  1. //燈泡的約定    
  2. public interface IBulb    
  3. {    
  4.     //統(tǒng)一的發(fā)光接口    
  5.     public void Luminescence();    
  6. }  

     第二步,還是實現(xiàn)目前所有種類的具體燈泡類型。代碼如下:

  1. //燈泡    
  2. public class Bulb : IBulb//實現(xiàn)了燈泡的約定、標準  {        
  3.       //發(fā)光       
  4.        public void Luminescence()        
  5.       {           
  6.              //燈泡發(fā)光的實現(xiàn)        
  7.        }    
  8. }     
  9. //節(jié)能燈泡    
  10. public class FrugalBulb : IBulb //實現(xiàn)了燈泡的約定、標準    
  11. {        
  12.       //節(jié)能發(fā)光        
  13.       public void Luminescence()        
  14.      {            
  15.         //節(jié)能燈泡發(fā)光的實現(xiàn)        
  16.       }    
  17. }     
  18. //彩色燈泡    
  19. public class ColorBulb : IBulb    
  20. {        
  21.       //彩色發(fā)光        
  22.        public void Luminescence()        
  23.       {            
  24.             //彩色燈泡發(fā)光的實現(xiàn)        
  25.        }    
  26. }  
     第三步,因為增加了工廠,但是每個工廠都有一個共同的行為那就是制造燈泡,因此為了將來更方便的增加工廠,我們把工廠也抽象,代碼如下:

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。


當前題目:設計模式系列-工廠方法模式-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://weahome.cn/article/dppjgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部