tft每日頭條

 > 生活

 > 顯示器怎麼進入工廠模式

顯示器怎麼進入工廠模式

生活 更新时间:2025-01-04 16:17:36

1、什麼是工廠模式

它提供了一種創建對象的最佳方式。在工廠模式中,我們在創建對象時不會對客戶端暴露創建邏輯,并且是通過使用一個共同的接口來指向新創建的對象。實現了創建者和調用者分離,工廠模式 分為簡單工廠、工廠方法、抽象工廠模式。

顯示器怎麼進入工廠模式(工廠模式)1

2、工廠模式的好處

(1)工廠模式是我們最常用的實例化對象模式了,是用工廠方法代替new操作的一種模式。

(2)利用工廠模式可以降低程序的耦合性,為後期的維護修改提供了很大的便利。

(3)将選擇實現類、創建對象統一管理和控制。從而将調用者跟我們的實現類解耦。

顯示器怎麼進入工廠模式(工廠模式)2

3、工廠模式應用場景

(1)如果有多個類,而且這些類還需要針對不同的情況來創建不同的對象,這時候就需要工廠了,我們可以在工廠中根據條件來創建具體的對象。

(2)動态地根據不同的類型創建不同的對象,考慮使用工廠模式,将這一大坨 if-else創建對象的代碼抽離出來,放到工廠類中。

顯示器怎麼進入工廠模式(工廠模式)3

4、工廠模式分類

工廠模式分為簡單工廠、工廠方法、抽象工廠模式。

簡單工廠 :用來生産同一等級結構中的任意産品,相當于是一個工廠中有各種産品,創建在一個類中,客戶無需知道具體産品的名稱, 隻需要知道産品類所對應的參數即可。但是工廠的職責過重,而且當類型過多時不利于系統的擴展維護。

工廠方法 :用來生産同一等級結構中的固定産品,在工廠方法模式中,核心的工廠類不再負責所有的産品的創建,而是将具體創建的工作交給子類去做。該核心類成為一個抽象工廠角色,僅負責給出具體工廠子類必須實現的接口,而不接觸哪一個産品類應當被實例化這種細節。

抽象工廠 :用來生産不同産品族的全部産品,簡單地說是工廠的工廠,抽象工廠可以創建具體工廠,由具體工廠來産生具體産品。

顯示器怎麼進入工廠模式(工廠模式)4

5、代碼實現

簡單工廠模式

public interface Car { public void run(); } public class Bmw implements Car { public void start() { System.out.println("寶馬汽車啟動..."); } } public class AoDi implements Car { public void start() { System.out.println("奧迪汽車啟動.."); } } public class CarFactory { public static Car createCar(String name) { if(name.equals("奧迪")){ return new AoDi(); } if(name.equals("寶馬")){ return new Bmw(); } return null; } } public class Client { public static void main(String[] args) { Car aodi =CarFactory.createCar("奧迪"); Car bmw =CarFactory.createCar("寶馬"); aodi.start(); bmw.start(); } }

顯示器怎麼進入工廠模式(工廠模式)5

工廠方法模式:

public interface Car { public void start(); } public interface CarFactory { Car createCar(); } public class AoDi implements Car { public void start() { System.out.println("奧迪汽車.."); } } public class Bmw implements Car { public void start() { System.out.println("寶馬汽車..."); } } public class AoDiFactory implements CarFactory { public Car createCar() { return new AoDi(); } } public class BmwFactory implements CarFactory { public Car createCar() { return new Bmw(); } } public class Client { public static void main(String[] args) { Car aodi = new AoDiFactory().createCar(); Car bmw = new BmwFactory().createCar(); aodi.start(); bmw.start(); } }

顯示器怎麼進入工廠模式(工廠模式)6

抽象工廠

// 汽車 工廠及實現類 public interface Car { void run(); } class CarA implements Car{ public void run() { System.out.println("寶馬"); } } class CarB implements Car{ public void run() { System.out.println("電動車"); } } // 發動機 工廠及實現類 public interface Engine { void run(); } class EngineA implements Engine { public void run() { System.out.println("跑的快!"); } } class EngineB implements Engine { public void run() { System.out.println("跑的慢!"); } } // 總工廠,及實現類 public interface TotalFactory { // 創建汽車 Car createChair(); // 創建發動機 Engine createEngine(); } //由他決定調用哪個工廠的那個實例 class TotalFactoryImpl implements TotalFactory { public Engine createEngine() { return new EngineA(); } public Car createChair() { return new CarA(); } } public class Test { public static void main(String[] args) { TotalFactory totalFactory = new TotalFactoryImpl(); Car car = totalFactory.createChair(); car.run(); TotalFactory totalFactory2 = new TotalFactoryImpl(); Engine engine = totalFactory2.createEngine(); engine.run(); } }

顯示器怎麼進入工廠模式(工廠模式)7

您的點贊就是對我最大的鼓勵。[玫瑰][玫瑰][玫瑰]

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved