輕松控制Java工場形式、籠統工場形式。本站提示廣大學習愛好者:(輕松控制Java工場形式、籠統工場形式)文章只能為提供參考,不一定能成為您想要的結果。以下是輕松控制Java工場形式、籠統工場形式正文
在面向對象編程的法式設計中,我們最多見的操作就是new對象,但在創立一個新對象的進程中,會有一些成績,好比我們須要留意創立新對象的完成細節,初始化一些需要的參數等。如許會讓我們在講更多的心思放在對象的創立上,而不是法式邏輯的完成上,嚴重遷延了我們的法式開辟效力。工場形式和籠統工場形式的湧現則完善處理了這個成績,讓我們不再關懷對象的創立,更多的在重心放在營業的完成上。
特色:
1、法式員直接經由過程工場辦法創立對象,不再存眷創立對象的細節。
2、隱蔽對象的完成細節,也有益於法式的平安性。
3、下降法式耦合度。
企業級開辟和罕見框架中的運用:
Hibernate中的sessionfactory等
工場形式分類:
簡略工場形式,法式開辟中最經常使用的情勢,詳細代碼以下:
public class Demo { /** * demo這個類就是我們日常平凡的操作類,在這個類中我們不消去關懷 創立汽車的完成細節 */ public static void main(String[] args) { Car car = CarFactory.createCar("dz"); car.run(); Car car2 = CarFactory.createCar("at"); car2.run(); } } interface Car{ public void run(); } class Dz implements Car{ public void run() { System.out.println("年夜眾汽車在跑"); } } class At implements Car{ public void run() { System.out.println("奧拓汽車在跑"); } } class CarFactory{ public static Car createCar(String type){ if("dz".equals(type)){ System.out.println("創立了一個年夜眾車"); return new Dz(); } if("at".equals(type)){ System.out.println("創立了一個奧拓車"); return new At(); } return null; } }
工場辦法形式,比擬於簡略工場形式,便利擴大,不用去修正之前的代碼
public class Demo { /** * demo這個類就是我們日常平凡的操作類,在這個類中我們不消去關懷 創立汽車的完成細節 */ public static void main(String[] args) { AtFactory atFactory = new AtFactory(); DzFactory dzFactory = new DzFactory(); Car at = atFactory.createCar(); Car dz = dzFactory.createCar(); at.run(); dz.run(); } } interface Car { public void run(); } class Dz implements Car { public void run() { System.out.println("年夜眾汽車在跑"); } } class At implements Car { public void run() { System.out.println("奧拓汽車在跑"); } } interface CarFactory { Car createCar(); } class DzFactory implements CarFactory { public Car createCar() { return new Dz(); } } class AtFactory implements CarFactory { public Car createCar() { return new At(); } }
籠統工場辦法形式:
public class Demo { public static void main(String[] args) { Car carFactory = new GDCarFactory(); FDZ fdz = carFactory.createFdz(); fdz.zhuansu(); } } interface FDZ { void zhuansu(); } class GDFDZ implements FDZ { public void zhuansu() { System.out.println("高端動員機轉速快"); } } class DDFDZ implements FDZ { public void zhuansu() { System.out.println("低端動員機轉速慢"); } } interface ZY { void shushidu(); } class GDZY implements ZY { public void shushidu() { System.out.println("高端座椅很溫馨"); } } class DDZY implements ZY { public void shushidu() { System.out.println("低端座椅不溫馨"); } } interface LT { void mosundu(); } class GDLT implements LT { public void mosundu() { System.out.println("高端輪胎不磨損"); } } class DDLT implements LT { public void mosundu() { System.out.println("低端輪胎磨損快"); } } interface Car { FDZ createFdz(); ZY createZy(); LT createLt(); } class GDCarFactory implements Car{ @Override public FDZ createFdz() { return new GDFDZ(); } @Override public ZY createZy() { return new GDZY(); } @Override public LT createLt() { return new GDLT(); } } class DDCarFactory implements Car{ @Override public FDZ createFdz() { return new DDFDZ(); } @Override public ZY createZy() { return new DDZY(); } @Override public LT createLt() { return new DDLT(); } }
三種辦法的比擬:
1、簡略工場形式:簡略工場形式設計簡略,代碼量少,然則可擴大性卻很差,須要擴大時須要修正之前的代碼
2、工場辦法形式:擴大性強,但增長了代碼龐雜度
3、籠統工場形式:籠統工場形式和工場形式是分歧,籠統工場形式是對產物分品級,但工場形式是對產物分類,舉個汽車的例子:工場形式是臨盆分歧種類的汽車,好比奧迪和年夜眾,而籠統工場形式則是對統一款汽車停止品級劃分,好比異樣都是年夜眾汽車,我們分了高端車和低端車。從辦法上講籠統工場形式更像是工場形式的細化。一個針對的不分歧產物,一個針對的是統一個產物家族。
以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。