輕松控制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、籠統工場形式:籠統工場形式和工場形式是分歧,籠統工場形式是對產物分品級,但工場形式是對產物分類,舉個汽車的例子:工場形式是臨盆分歧種類的汽車,好比奧迪和年夜眾,而籠統工場形式則是對統一款汽車停止品級劃分,好比異樣都是年夜眾汽車,我們分了高端車和低端車。從辦法上講籠統工場形式更像是工場形式的細化。一個針對的不分歧產物,一個針對的是統一個產物家族。
以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。