程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 輕松控制Java工場形式、籠統工場形式

輕松控制Java工場形式、籠統工場形式

編輯:關於JAVA

輕松控制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、籠統工場形式:籠統工場形式和工場形式是分歧,籠統工場形式是對產物分品級,但工場形式是對產物分類,舉個汽車的例子:工場形式是臨盆分歧種類的汽車,好比奧迪和年夜眾,而籠統工場形式則是對統一款汽車停止品級劃分,好比異樣都是年夜眾汽車,我們分了高端車和低端車。從辦法上講籠統工場形式更像是工場形式的細化。一個針對的不分歧產物,一個針對的是統一個產物家族。

以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。

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