【黑馬程序員濟南中心】工廠設計模式-抽象工廠模式
今天咱們講一講工廠設計模式的最後一種:抽象工廠模式。這個至關於工廠設計模式的進階版本,咱們能夠先去了解它,在慢慢的熟練使用它。程序員
什麼是抽象工廠模式?抽象工廠模式(Abstract Factory Pattern)是圍繞一個超級工廠建立其餘工廠。該超級工廠又稱爲其餘工廠的工廠。這種類型的設計模式屬於建立型模式,它提供了一種建立對象的最佳方式。設計模式
在抽象工廠模式中,接口是負責建立一個相關對象的工廠,不須要顯式指定它們的類。每一個生成的工廠都能按照工廠模式提供對象。spa
咱們用一個類圖來展現抽象工廠模式:設計
首先要建立一個接口,這個接口就是指的Creator,而一組相關或者相互依賴的對象,就是指的ProductA和ProductB以及它們具體的實現類,咱們返回的接口或者抽象類則是指的ProductA和ProductB接口。對象
咱們用代碼體現:接口
工廠類:產品
public interface Creator {class
ProductA createProductA();進階
ProductB createProductB();程序
}
工廠實現類:
public class ConcreteCreator1 implements Creator {
public ProductA createProductA() {
return new ProductA1();
}
public ProductB createProductB() {
return new ProductB1();
}
}
public class ConcreteCreator2 implements Creator {
public ProductA createProductA() {
return new ProductA2();
}
public ProductB createProductB() {
return new ProductB2();
}
}
產品類:
interface ProductA {
void methodA();
}
interface ProductB {
void methodB();
}
產品實現類:
class ProductA1 implements ProductA {
public void methodA() {
System.out.println("產品A系列中1型號產品的方法");
}
}
class ProductA2 implements ProductA {
public void methodA() {
System.out.println("產品A系列中2型號產品的方法");
}
}
class ProductB1 implements ProductB {
public void methodB() {
System.out.println("產品B系列中1型號產品的方法");
}
}
class ProductB2 implements ProductB {
public void methodB() {
System.out.println("產品B系列中2型號產品的方法");
}
}
以上就是咱們展現的代碼案例。簡單的說:無論是簡單工廠,仍是工廠方法,都有一個缺陷,那就是整個模式當中只能有一個抽象產品,因此直觀的,在工廠方法模式中再添加一個創造抽象產品的方法就是抽象工廠模式了,相應的固然還有添加一個抽象產品,還有一系列具體的該抽象產品的實現。