設計模式來一發(三)工廠方法模式

2021-09-03 01:52:55 字數 879 閱讀 1289

為某個物件提供乙個介面,而且無需指定它們的具體類。 

工廠方法模式,是簡單工廠模式的延伸(簡單工廠模式中,每出現乙個新的產品(或實現),都要修改工廠類,這違背了開閉原則。所以工廠方法通過將建立產品的實現延遲到子類,解決了這個問題。但這帶來了新的問題,就是每出現乙個新的產品,就要增加新的產品類例項,開發成本變高;並且,客戶端又重新需要關心建立哪個工廠的問題。

簡單來說,工廠方法模式的好處就是,擴充套件方便了,因為抽象工廠一旦建立好,就可以復用了。

用工廠方法模式實現乙個水果工廠,由工廠生產水果:

1)建立抽象水果類,建立具體的某種水果類;

2)建立抽象水果工廠,建立具體的某種水果子工廠;

3)呼叫方呼叫水果子工廠生成水果。

// 抽象水果類

public abstract class fruit

public string getname()

}// 乙個具體水果類

super(name); }}

// 乙個具體水果類

public class banana extends fruit

}

// 抽象水果工廠

public inte***ce ifruitfactory

// 蘋果工廠,專門生產蘋果

@override

public fruit getfruit()

}// 香蕉工廠,專門生產香蕉

public class bananafactory implements ifruitfactory

}

// 呼叫方

public class eat

}

設計模式來一發(四)抽象工廠模式

抽象工廠模式為建立一組相關或相互依賴的物件提供乙個介面,而且無需指定它們的具體類。對比工廠方法模式的定義 為某個物件提供乙個介面,而且無需指定它們的具體類。可以看出抽象工廠模式相當於是對工廠方法模式 的橫向擴充套件,工廠方法只能建立一類介面,而抽象工廠模式可以建立多類介面,當然這些介面遵循一致需求。...

設計模式(三) 工廠方法模式

在設計模式 簡單工廠模式文章中介紹了簡單工廠模式,通過乙個例子講述了如何使用簡單工廠模式。同時也留下了乙個問題,那就是簡單工廠模式破壞了開放 封閉原則。那麼本文將介紹另外一種設計模式 工廠方法模式。主要介紹其概念 用途 實現方式 以及優缺點等。工廠方法模式 factory method patter...

設計模式(三) 工廠方法模式

工廠模式一般分為三種 簡單工廠,工廠方法,抽象工廠 簡單工廠 簡單工廠模式又叫靜態工廠方法模式,是通過專門定義乙個類負責建立其他類的例項,被建立的例項通常都具有共同的父類。簡單工廠將物件的建立過程進行了封裝,使用者不需要知道具體的建立過程,只需要呼叫工廠類獲取物件即可。工廠類的寫法是通過switch...