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

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

java語言實現創建型設計模式―創建者模式

來源:程序員人生   發布時間:2015-06-06 08:17:24 閱讀次數:3274次

1、描寫

創建者模式單獨利用1個創建者類來創建對象并組建對象之間的關系,以簡化客戶端調用的復雜性。相對抽象方法模式來講,創建者模式增加了1個單獨的用于組裝對象和對象之間關系的創建者類,由該類來負責對象的組裝,以此來更加清晰地劃分各個類的職責。

創建者模式將1個復雜對象的構建和它的表示分離,使得一樣的構建進程可以創建不同的表示,而且對客戶端屏蔽了對象的構建細節,該模式主要由5個部份組成:組裝類、抽象創建者類,實現了抽象創建者類的具體創建者類,抽象產品類、實現了抽象產品類的具體產品類。在此可以看出與抽象方法模式相比多了1個組裝類。


2、創建者模式的優缺點

優點:在創建者模式中客戶端不再負責對象的創建和組裝,而是由1個具體的組裝類來完成這項功能,將組裝的責任交給組裝類,客戶端只負責對象的調用,從而更加明確了各個類的職責。

缺點:利用創建者模式可以創建出不同類型的產品,但是如果要創建的產品差異非常大就需要編寫多個創建者類來實現,這無疑增加了代碼的復雜性,而且創建者類只是在構造相干部件的發雜關系上有優勢,如果要增加1個部件還是需要改變原本的代碼,增加新的模塊。


3、源代碼

總述:1個公司有計算薪金和社保需求,我們有多個分公司,每一個分公司都要計算這兩項,現在我們需要創建分公司對象,利用各個對象調用各個公司計算這兩項業務的方法來得出結果,我需要以下幾個類:抽象工廠類(定義創建對象的接口),兩個子公司的具體工廠類(實現了抽象工廠類中創建對象的方法來產生具體的對象),抽象薪資類(定義薪資計算的標準接口),兩個子公司的具體薪資類(實現抽象薪資類中計算薪資的方法),抽象社保類(定義社保計算的標準接口),兩個子公司的具體社保類(實現抽象社保類中計算社保的方法),組裝類(負責對象的創建和兌現直接關系的組裝),客戶端調用類(用來調用組裝類組裝對象并調用相應的實現類方法)。

1、抽象工廠類

package tong.day5_1.builder; /** *抽象的工廠接口,在這個接口中定義了1個兩個抽象方法,分別創建薪資類對象和社保類對象,由實現該接口的具體類重寫該方法,分別創建自己類的對象 * @author tong * */ public interface AbstractFactory { //抽象方法,用于創建各種類的對象 public abstract Salary createSalary(); public abstract Insurance createInsurance(); }
2、具體工廠類
package tong.day5_1.builder; public class GuangdongFactory implements AbstractFactory { @Override public Salary createSalary() { return new GuangdongSalary(); } @Override public Insurance createInsurance() { return new GuangdongInsurance(); } }
package tong.day5_1.builder; /** * 具體工廠類實現抽象工廠中的所有方法,并返回該類的薪資對象和社保對象 * @author tong * */ public class ZhejiangFactory implements AbstractFactory { @Override public Salary createSalary() { return new ZhejiangSalary(); } @Override public Insurance createInsurance() { return new ZhejiangInsurance(); } }

3、抽象薪資類

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

package tong.day5_1.builder; /** * 廣東分公司的薪資計算類實現了Salary接口,并重寫了該接口中的計算薪資的方法computeSalary() * @author tong * */ public class GuangdongSalary implements Salary { @Override public void computeSalary() { System.out.println("廣東分公司薪資計算"); } }
package tong.day5_1.builder; /** * 浙江分公司的薪資計算類實現了Salary接口,并重寫了該接口中的計算薪資的方法computeSalary() * @author tong * */ public class ZhejiangSalary implements Salary { @Override public void computeSalary() { System.out.println("浙江分公司薪資計算"); } }
5、抽象社保類
package tong.day5_1.builder; /** * 抽象社保類 * @author tong * */ public interface Insurance { public abstract void computeInsurance(); }
6、具體社保類

package tong.day5_1.builder; public class GuangdongInsurance implements Insurance { @Override public void computeInsurance() { System.out.println("廣東分公司社會保險計算"); } }
package tong.day5_1.builder; public class ZhejiangInsurance implements Insurance { @Override public void computeInsurance() { System.out.println("浙江分公司社會保險計算"); } }
6、組裝類

package tong.day5_1.builder; /** * 這里使用1個組裝類來簡化客戶端創建對象、初始化對象和構建對象之間的關系 * @author tong * */ public class Builder { private AbstractFactory abstractFactory; //根據傳入的參數肯定初始化哪一個公司的工廠類對象,這里使用多態,根據傳入的參數動態創建相應的對象 public Builder(AbstractFactory abstractFactory) { this.abstractFactory = abstractFactory; } //組裝的具體實現方法,調用類中計算薪金和社保的方法 public void moneySum() { Salary salary = abstractFactory.createSalary(); salary.computeSalary(); Insurance insurance = abstractFactory.createInsurance(); insurance.computeInsurance(); } }
7、客戶端調用類

package tong.day5_1.builder; /** * 客戶端在這里得到了簡化,不用再斟酌如何組裝創建和組裝對象,而只需要調用專門的組裝類來組裝對象 * @author tong * */ public class Client { public static void main(String[] args) { //組裝浙江分公司的對象 Builder builder = new Builder(new ZhejiangFactory()); builder.moneySum(); System.out.println("--------------"); //組裝廣東分公司的對象 builder = new Builder(new GuangdongFactory()); builder.moneySum(); } }

4、運行結果

創建者模式




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久美女 | 一区二区电影网 | 免费激情 | 精品欧美视频 | 日韩欧美片 | 欧美成人毛片 | 亚洲精品九九 | 成人网址在线观看 | 日韩一区二区三区四区五区 | 日韩av成人网 | 久久丁香| 欧美日韩一区二区三区不卡视频 | 精品性高朝久久久久久久 | 伊人888| 精品国产乱码久久久久久图片 | 久久精品国产一区 | 国产精品av一区二区三区 | 在线一区二区欧美 | 国产一区二区三区精品毛片 | 精品99视频 | 欧洲另类 | 久热福利视频 | 自拍偷拍第一页 | 日韩毛片免费视频一级特黄 | 精品国产精品三级精品av网址 | 国产专区在线 | 99久久久国产精品免费调教网站 | 国产一级片 | 手机av在线不卡 | 国产一区二区在线精品 | 欧美精品xx | 美女视频网站久久 | 久久精品免费观看 | 久久久久久久国产精品视频 | 中文字幕国产日韩 | 精品久久久久久久久久久久久久久久久 | 国产精品免费看 | 精品粉嫩aⅴ一区二区三区四区 | 精品在线一区二区 | 日本精品一区二区 | av在线不卡网站 |