日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

格力电器Java面试题_JAVA设计模式学习--工厂模式

發(fā)布時間:2025/3/11 java 90 豆豆
生活随笔 收集整理的這篇文章主要介紹了 格力电器Java面试题_JAVA设计模式学习--工厂模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天談一下對工廠模式學習的總結。

看完視頻和文章之后要自己表述工廠模式,總是感覺無從說起,不知道怎么去定義工廠模式,反復看了幾遍之后終于理解一點。

自己理解工廠模式是通過這兩種模式的特點來理解和定義的,首先工廠模式有簡單工廠模式(不在23中設計模式中),工廠方法模式,抽象工廠模式,把三種模式對比來定義,根據不同模式的特點來記憶。

工廠模式是讓對象的創(chuàng)建和使用分離,每次使用時不用自己創(chuàng)建,把創(chuàng)建對象的過程交給工廠來完成。

定義(僅供參考 -- 理解后再形成自己的定義)

工廠方法模式定義:定義創(chuàng)建一個產品的工廠接口,將這一個產品的具體創(chuàng)建方法延遲到子類工廠實現,當需要使用這個產品時通過工廠獲取。

如果只有一類產品定義為簡單工廠模式了.

抽象工廠模式定義:定義創(chuàng)建一系列產品的工廠接口,將這一系列產品的具體創(chuàng)建過程延遲到子類工廠,使用時通過工廠就可以創(chuàng)建一系列的產品。

優(yōu)缺點對比

工廠方法模式:

優(yōu)點-可以進行不同產品的擴展,如定義一個水果類工廠就可以創(chuàng)建不同的水果,現在要擴展一個蔬菜類產品就再定義一個蔬菜類工廠。

缺點-單要創(chuàng)建一系列產品類的時候,會出現工廠泛濫,一個產品類就要創(chuàng)建一個產品接口,一個產品工廠,增加系統(tǒng)復雜性。比如我還要創(chuàng)建動物類,工具類等,

工廠將越來越多。

抽象工廠模式:

優(yōu)點-可以創(chuàng)建一系列的產品,當增加新的產品系列可以不用修改代碼,如建了一個海爾系列的電器,再建一個格力系列的就可以只增加一個名稱。

缺點-當增加一個產品時要改動工廠所有的接口。如工廠創(chuàng)建的是洗衣機,電視,空調,現在要增加一個熱水器的產品,那么所有工廠子類都要增加。

模式結構對比

工廠模式的結構:

1.抽象產品:Product

2.抽象工廠:AbstractFactory

3.具體產品:Concrete Product

4.具體工廠:Conrete Factory

抽象工廠模式結構:

1.抽象產品系列:Product

2.抽象工廠:AbstractFactory

3.具體產品系列:Concrete Product

4.具體工廠:Conrete Factory

上代碼

工廠模式:

//產品

public interfaceProduct {public voidrun();

}//工廠

public interfaceFactory {publicProduct createFactory();

}//車類產品和工廠

public class Car implementsProduct {

@Overridepublic voidrun() {

System.out.println("駕車起飛。。。。。。");

}

}public class CarFactory implementsFactory {

@OverridepublicProduct createFactory() {return newCar();

}

}//食物類產品和工廠

public class Food implementsProduct{

@Overridepublic voidrun() {

System.out.println("eat.......");

}

}public class FoodFactory implementsFactory {

@OverridepublicProduct createFactory() {return newFood();

}

}//測試代碼

public classTestFactory {public static voidmain(String[] args) {

Factory f= newCarFactory();//Factory f = new FoodFactory();

Product p =f.createFactory();

p.run();

}

}

抽象工廠模式:

//產品系列

public interfaceTV {public voidshow();

}public interfaceWashing {public voidwash();

}public interfaceAir {public voidfever();

}//產品工廠

public interfaceAbstractFactory {publicTV crateTV();publicAir createAir();publicWashing createWashing();

}//HR系列產品

public class HRTelevision implementsTV{

@Overridepublic voidshow() {

System.out.println("海爾電視。。。。。");

}

}public class HRWarshing implementsWashing{

@Overridepublic voidwash() {

System.out.println("海爾洗衣機。。。");

}

}public class HRAir implementsAir{

@Overridepublic voidfever() {

System.out.println("海爾空調。。。");

}

}//HR系列產品工廠

public class HRFactory implementsAbstractFactory {

@OverridepublicTV crateTV() {return newHRTelevision();

}

@OverridepublicAir createAir() {return newHRAir();

}

@OverridepublicWashing createWashing() {return newHRWarshing();

}

}//GL系列產品

public class GLTelevision implementsTV{

@Overridepublic voidshow() {

System.out.println("格力電視。。。。");

}

}public class GLAir implementsAir {

@Overridepublic voidfever() {

System.out.println("格力空調。。。。。");

}

}public class GLWashing implementsWashing {

@Overridepublic voidwash() {

System.out.println("格力洗衣機。。。");

}

}//GL系列產品工廠

public class GLFactory implementsAbstractFactory {

@OverridepublicTV crateTV() {return newGLTelevision();

}

@OverridepublicAir createAir() {return newGLAir() ;

}

@OverridepublicWashing createWashing() {return newGLWashing();

}

}//測試代碼

public classTest {public static voidmain(String[] args) {//AbstractFactory f = new GLFactory();

AbstractFactory f = newHRFactory();

TV tv=f.crateTV();

Air air=f.createAir();

Washing warsh=f.createWashing();

tv.show();

air.fever();

warsh.wash();

}

}

測試代碼中只需要修改工廠類就可以實現生產不同的產品和不同的產品系列了, 當工廠可以通過配置文件來取的時候就不用更改任何代碼就實現了,實際生產中工廠都可以通過快速編碼來配置,很多成型的產品都是直接配置就能完成整個系統(tǒng)的初始化了。

這是自己理解并輸入的第二篇關于設計模式的筆記了,只是看一遍和根據自己的思路寫一遍真的是完全不同的感覺,如果只是看一遍過一天可能就忘記了, 如果自己思路清晰之后再自己設計下,根據思路寫一遍如果有問題又回去看看具體細節(jié),一路記下來差不多就能搞定了,希望對路過的你有幫助。

后續(xù)繼續(xù)學習中。。。

總結

以上是生活随笔為你收集整理的格力电器Java面试题_JAVA设计模式学习--工厂模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。