我們在code的時候經常會遇到由於業務複雜,而不知道如何下手的情況,或者對於某個東西寫出來很難擴充套件的情況。
public
class
factorymethod
}class
producta
}class
producta getobject()
}
比如以下**,針對產品a定製了一套解決方案,此時**的耦合性極高,當產生新的產品的時候需要對產品b寫一套全新的**,從而造成極大的工作量以及**的混亂。
因此需要考慮一種高內聚、低耦合的解決方案,不僅可以使**層次清晰,還可以最大限度的提取出公共**,對變化的**進行提取,使用抽象的方式代替。
public
class
factorymethod
}inte***ce
product
class
producta
implements
product
}class
productb
implements
product
}abstract
class
}class
extends
}class
extends
}
當不知道適用物件具體型別的時候
當你希望為庫或者框架提供擴充套件其內部元件的方法時
將具體產品和建立者解耦,只需關注產品本身的實現
符合單一職責原則
符合開閉原則
設計模式 工廠模式之工廠方法模式
工廠方法模式是指定義乙個建立物件的介面,然後實現這個介面的工廠來決定建立什麼樣的例項。工廠方法讓類的例項推遲到子類中進行。在這個模式中,只關心需要建立的是什麼工廠,不需要關心建立的細節。而且新加入的產品符合開閉原則。1 建立支付介面,裡面定義抽象的支付方法。package com.gupao.vip...
設計模式之工廠方法模式
package com.csair.design.pattern 工廠方法,有抽象基類,每個子類生產乙個具體物件,與抽象工廠的關係是,抽象工廠生產多個產品 產品有某種內在聯絡 工廠方法只生產乙個物件 author ppt public class factorymethod public stati...
設計模式之工廠方法模式
在介紹工廠方法模式之前,先來介紹一下簡單工廠。什麼是簡單工廠?在類中,難免要例項化一些類,那麼我們把這些類的例項化抽離出來封裝成乙個工廠類,工廠類提供乙個公共的靜態或非靜態的方法來返回其他物件所需要的物件。這樣做的目的就是將物件的例項化與邏輯 分開,提高 的復用能力。這就是簡單工廠。public a...