23種設計模式(抽象工廠模式)
23種設計模式(抽象工廠模式)
(願歲月清淨)
1.抽象工廠模式定義
抽象工廠模式提供了一個建立一系列相關或者相互依賴物件的介面。無需指定他們具體的類。
2.使用場景:
- 客戶端(應用層)不依賴於產品類例項如何被建立‘實現等細節
- 強調一系列相關的產品物件(屬於同一產品類)一起使用建立物件需要大量的重複程式碼
- 提供一個產品類的庫,所有的產品以同樣的介面出現,從而使得客戶端不依賴與具體的實現
3.程式碼說明
1.IPhoneProduct
package com.kuang.factory.abstract1;
//手機產品介面
public interface IPhoneProduct {
void start();
void shutdown();
void call();
void sendMsg();
}
2.IRouterProduct
package com.kuang.factory.abstract1;
//路由器產品介面
public interface IRouterProduct {
void start();
void shutdown();
void openWifi();
void setting();
}
3.IProductFactory
package com.kuang.factory.abstract1;
//抽象產品工廠
public interface IProductFactory {
//生產手機
IPhoneProduct iPhoneProduct();
//生產路由器
IRouterProduct iRouterProduct();
}
4.XiaomiPhone
package com.kuang.factory.abstract1;
public class XiaomiPhone implements IPhoneProduct {
@Override
public void start() {
System.out.println("小米開機");
}
@Override
public void shutdown() {
System.out.println("小米關機");
}
@Override
public void call() {
System.out.println("小米打電話");
}
@Override
public void sendMsg() {
System.out.println("小米發資訊");
}
}
5.XiaomiRouter
package com.kuang.factory.abstract1;
public class XiaomiRouter implements IRouterProduct {
@Override
public void start() {
System.out.println("小米開啟路由器");
}
@Override
public void shutdown() {
System.out.println("小米關閉路由器");
}
@Override
public void openWifi() {
System.out.println("小米開啟Wifi");
}
@Override
public void setting() {
System.out.println("小米設定路由器");
}
}
6.XiaomiFactory
package com.kuang.factory.abstract1;
public class XiaomiFactory implements IProductFactory {
@Override
public IPhoneProduct iPhoneProduct() {
return new XiaomiPhone();
}
@Override
public IRouterProduct iRouterProduct() {
return new XiaomiRouter();
}
}
7.Client
package com.kuang.factory.abstract1;
public class Client {
public static void main(String[] args) {
System.out.println("=================小米系列產品==============");
XiaomiFactory xiaomiFactory = new XiaomiFactory();
IPhoneProduct iPhoneProduct = xiaomiFactory.iPhoneProduct();
iPhoneProduct.start();
IRouterProduct iRouterProduct = xiaomiFactory.iRouterProduct();
iRouterProduct.start();
}
}
8.測試結果
=================小米系列產品==============
小米開機
小米開啟路由器
4.總體結構
相關文章
- 23種設計模式之抽象工廠設計模式抽象
- 設計模式 —— 抽象工廠模式設計模式抽象
- 設計模式-抽象工廠模式設計模式抽象
- 設計模式——抽象工廠模式設計模式抽象
- java23種設計模式——三、工廠模式Java設計模式
- 23種設計模式(一)---簡單工廠設計模式設計模式
- java設計模式–抽象工廠模式Java設計模式抽象
- Java設計模式-抽象工廠模式Java設計模式抽象
- 設計模式-簡單工廠、工廠方法模式、抽象工廠模式設計模式抽象
- 設計模式 - 抽象工廠設計模式抽象
- 設計模式----抽象工廠設計模式抽象
- 設計模式 – 抽象工廠設計模式抽象
- 設計模式學習(二)工廠模式——抽象工廠模式設計模式抽象
- 【重溫23種設計模式】之工廠方法模式設計模式
- C# 設計模式(1)——簡單工廠模式、工廠模式、抽象工廠模式C#設計模式抽象
- Java 設計模式之工廠方法模式與抽象工廠模式Java設計模式抽象
- 建立型設計模式——抽象工廠模式設計模式抽象
- golang設計模式之抽象工廠模式Golang設計模式抽象
- 設計模式(三)抽象工廠方法模式設計模式抽象
- 設計模式系列之「抽象工廠模式」設計模式抽象
- 設計模式之工廠模式!深入解析簡單工廠模式,工廠方法模式和抽象工廠模式設計模式抽象
- 設計模式--抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- Java常用設計模式之抽象工廠模式Java設計模式抽象
- 設計模式-抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- 設計模式學習(六)-抽象工廠模式設計模式抽象
- JAVA設計模式 3【建立型】理解工廠模式與抽象工廠模式Java設計模式抽象
- Java設計模式學習筆記——工廠模式與抽象工廠模式Java設計模式筆記抽象
- 設計模式學習(二)工廠模式——抽象工廠模式+登錄檔設計模式抽象
- 設計模式——抽象工廠實驗設計模式抽象
- 設計模式:三種工廠模式設計模式
- 設計模式快速學習(二)抽象工廠模式設計模式抽象
- Rust語言之GoF設計模式:抽象工廠模式RustGo設計模式抽象
- 設計模式實戰 - 抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- 重學 Java 設計模式:實戰抽象工廠模式Java設計模式抽象
- 設計模式實戰 – 抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- 設計模式之三種工廠模式設計模式
- 抽象工廠模式抽象模式
- 簡單工廠模式、工廠模式、抽象工廠模式比較模式抽象