程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#抽象工廠(AbstractFactory)-雞腿和漢堡(2)

C#抽象工廠(AbstractFactory)-雞腿和漢堡(2)

編輯:關於C語言

那麼,現在,大家應該已經看清楚。這張圖是我自己隨手畫的,畫完之後發現,哇,這不就是經典的 AbstractFactory模式的那張圖嗎?現在,你了解嗎?

必勝客來了,也做漢堡和雞腿。那麼怎麼辦呢?非常容易,我們消費者根本不管這些,只管把必勝客 加入我們的大腦(配置文件),需要的時候,直接走進去就行了。僅僅需要添加一個必勝客工廠,必勝客 漢堡,必勝客雞腿,OK,一切搞定。那麼又有人問了,我要喝汽水怎麼辦呢?我偷偷告訴你,這裡不賣~ :)哈哈,希望大家學習愉快,工作愉快!!

以上是我在網上看到一篇仁兄寫的文章,對我思想上的觸發很大。自己琢磨了一會寫出了下面的代碼 。

publicabstractclassKuaiCanFactory  //快餐工廠
   {
     //兩個抽象方法,您吃雞腿呢,還是漢堡呀?因為是抽象出來的,所以不分商家哦!
     publicabstractJiTuIEatJiTui();
     publicabstractHanBaoeatHanBao();
   }
//繼續寫類
   publicclassMDLFactory:KuaiCanFactory //麥當勞工廠
   {
     publicoverrideJiTuIEatJiTui()
     {
       returnnewMDLJiTui();
     }
     publicoverrideHanBaoeatHanBao()
     {
       returnnewMDLHanBao();
     }
   }
//有了麥當勞當然少不了KFC啦。
//肯德基工廠及麥當勞工廠都實現了eatJiTui(),eatHanBao()方法。
   publicclassKDJFactory:KuaiCanFactory

  {
     publicoverrideJiTuIEatJiTui()
     {
       returnnewKDJJiTui();
     }
     publicoverrideHanBaoeatHanBao()
     {
       returnnewKDJHanBao();
     }
   }
//下面就到食物了。。
   publicabstractclassHanBao //漢堡抽象類
   {
     publicabstractvoidgetHanBao();
   }
   publicclassMDLHanBao:HanBao//具體的麥當勞漢堡
   {
     publicoverridevoidgetHanBao()
     {
       Console.WriteLine("麥當勞漢堡");
     }
   }
   publicclassKDJHanBao:HanBao //具體的肯德基漢堡
   {
     publicoverridevoidgetHanBao()
     {
       Console.WriteLine("肯德基漢堡");
     }
   }
   publicabstractclassJiTui  //雞腿抽象類
   {
     publicabstractvoidgetJiTui();
   }
   publicclassKDJJiTui:JiTui //具體的肯德基雞腿
   {
     publicoverridevoidgetJiTui()
     {
       Console.WriteLine("肯德基雞腿");
     }
   }
   classMDLJiTui:JiTui   //具體的麥當勞雞腿
   {
     publicoverridevoidgetJiTui()
     {
       Console.WriteLine("麥當勞雞腿");
     }
   }
//這樣就大功告成,客戶去快餐店吃雞腿,並不關心他們怎麼拿出來的,只需要大吼一聲“我吃雞腿” ,就OK了。
     staticvoidMain(string[]args)
     {
       //這裡或許使用簡單工廠來處理選擇商店更好
       KuaiCanFactoryKC=newKDJFactory();//想吃KFC的雞腿,那麼就去KFC。
       JiTuijt=KC.eatJiTui();//想吃雞腿了,那麼就告訴KC(快餐店)
       jt.getJiTui();//雞腿拿來咯~~……
       HanBaohb=KC.eatHanBao();//想吃漢堡
       hb.getHanBao();
       KC=newMDLFactory();
       jt=KC.eatJiTui();
       jt.getJiTui();
       hb=KC.eatHanBao();
       hb.getHanBao();
     }

輸出結果:

肯德基雞腿

肯德基漢堡

麥當勞雞腿

麥當勞漢堡

飽了~~~~希望別吃壞了肚子。。要是哪不對,就給我留言,謝謝!!!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved