日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > 框架設計 > java語言實現創建型設計模式―工廠方法模式

java語言實現創建型設計模式―工廠方法模式

來源:程序員人生   發布時間:2015-08-08 09:04:14 閱讀次數:3279次

1、描寫

基于簡單工廠模式中將所有類的創建和初始化放在1個工廠類中出現的問題,我們引進了工廠方法模式,該模式是GoF總結的23種設計模式的第1種,這個設計模式將1個工廠類拆分成多個具體的工廠類,每一個具體的工廠類負責相應的類的對象的創建。

在工廠方法模式中,抽象工廠類負責定義創建對象的接口,具體對象的創建由實現該抽象工廠的具體工廠類來完成,它由4部份組成:抽象工廠類、實現抽象工廠類的具體工廠類、抽象類、實現抽象類的具體類。


2、工廠方法模式的優缺點

優點:在工廠方法模式中,創建對象的任務由具體的工廠類負責,1個具體類對應1個具體的工廠類,再由抽象工廠類定義所有具體工廠類創建對象的統1接口,客戶端只負責調用具體類創建對應的對象。

如果有1個新的產品加入,那末只需要增加1個具體類和創建這個具體類的工廠類便可,不需要修改原來已有的代碼,同1個類的代碼量也不會變大,更利于后期的保護,增強了系統的可擴大性。

缺點:每新加1個產品就要增加兩個類,需要額外地編寫代碼,增加了工作量。

3、源代碼

1、抽象方法類:

package tong.day4_30.factoryMethod; /** *抽象工廠接口,在這個接口中定義了1個createSalary()方法,由實現該接口的具體類重寫該方法,分別創建自己類的對象 * @author tong * */ public interface Factory { //這是1個公共的抽象方法,用于創建各種類的對象 public abstract Salary createSalary(); }

2、具體方法類

package tong.day4_30.factoryMethod; /** * 具體的工廠方法,用于創建特定類的對象 * @author tong * */ public class GuangdongSalaryFactory implements Factory { @Override public Salary createSalary() { //返回GuangdongSalary類的對象 return new GuangdongSalary(); } }

package tong.day4_30.factoryMethod; /** * 具體的工廠方法,用于創建特定類的對象 * @author tong * */ public class ZhejiangSalaryFactory implements Factory { @Override public Salary createSalary() { //返回ZhejiangSalary類的對象 return new ZhejiangSalary(); } }

3、抽象類

package tong.day4_30.factoryMethod; /** * 定義1個薪資接口,所有公司的具體薪資計算都實現這個接口,并重寫計算薪資的方法computeSalary() * @author tong * */ public interface Salary { public void computeSalary(); }

4、具體類

package tong.day4_30.factoryMethod; /** * 廣東分公司的薪資計算類實現了Salary接口,并重寫了該接口中的計算薪資的方法computeSalary() * @author Administrator * */ public class GuangdongSalary implements Salary { @Override public void computeSalary() { System.out.println("廣東分公司薪資計算"); } }

package tong.day4_30.factoryMethod; /** * 浙江分公司的薪資計算類實現了Salary接口,并重寫了該接口中的計算薪資的方法computeSalary() * @author Administrator * */ public class ZhejiangSalary implements Salary { @Override public void computeSalary() { System.out.println("浙江分公司薪資計算"); } }

5、客戶端調用

package tong.day4_30.factoryMethod; /** * 在客戶端調用工廠方法來創建每一個具體的工廠類對象,使用具體工廠類對象來創建不同的薪資對象,由薪資對象調用computeSalary()計算薪資; * 如果還想創建更多的公司薪資,那末就創建1個相應的薪資類,再創建1個相應的薪資計算的具體工廠類。 * @author tong * */ public class Client { public static void main(String[] args) { //創建Factory對象,這里使用多態,創建不同的具體工廠類對象 Factory factory = new GuangdongSalaryFactory(); //使用具體的工廠類對象創建不同的薪資對象來計算薪資 Salary salary = factory.createSalary(); salary.computeSalary(); factory = new ZhejiangSalaryFactory(); salary = factory.createSalary(); salary.computeSalary(); } }


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩精品电影在线观看 | 自拍 亚洲 | 黄色动漫免费在线观看 | 少妇乱淫aaa高清视频真爽 | 97成人资源 | 久久99视频精品 | 久久精品亚洲国产 | 亚洲最大福利网站 | 亚洲精品视频播放 | 免费国产 | 日本中文字幕一区 | 直接看的av网站 | 欧美亚洲大片 | 久久成人精品 | 久久久久久久久综合 | 日韩一区欧美一区 | 久久99精品一区二区三区三区 | 日韩国产 | 九九国产 | 国产精品电影在线观看 | 草久久久 | 在线久草| 中文字幕成人网 | 久久精品国产欧美亚洲人人爽 | 亚洲综合视频在线 | 91在线小视频 | 亚洲一区二区三区四区五区午夜 | 日韩精品免费一区二区夜夜嗨 | 成人性调教在线播放 | 99精品国产一区二区 | 成人久久 | 日韩精品一区二区三区四区 | 嫩草嫩草嫩草嫩草嫩草 | 成人免费黄网站 | 中文有码在线视频 | 欧美xxxx黑人又粗又长 | 黄色片在线免费观看 | 国产精品久久久久久影视 | 久久久久久亚洲精品 | 亚洲视频免费观看 | 二区精品 |