設計模式 工廠模式

2021-10-03 05:31:16 字數 974 閱讀 6643

定義乙個介面,多個介面實現類,讓其子類自己決定例項化哪乙個工廠類,工廠模式使其建立過程延遲到子類進行。

在處理同一業務時要根據不同的條件去建立不同的業務處理類的例項。

工廠模式分為簡單工廠、工廠方法、抽象工廠,我在解決業務需求時主要是用到了抽象工廠(簡單工廠+反射)。

這種方式也可以很好地滿足業務需求,但是想到以後計算方法的增多,switch越來越臃腫,**不美觀不簡潔,所以決定改造一番。

首先,建立介面和多個介面實現類

實現類太多了,簡單給大家看一下,就不貼上詳細**了

然後建立乙個工廠類,他主要的職責是根據使用者選擇的不同計算方法去例項化不同的類,

這裡主要是通過類名用class.forname反射拿到class的例項,return該例項。然後呼叫,

這樣改造的話,如果後續還要增加計算方法,只需要實現該介面去寫實現類就好了,我這裡之所以用方法名字反射拿到例項,是因為我們前端會展示方法列表,每個方法在資料庫中都有配置,索性就把方法實現類名和庫里配置統一了,這樣在前端引數中可以直接拿到使用者選擇的方法名。

工廠模式是開發中常用到的一種設計模式,他可以很靈活的去處理我們的業務需求,並且後期拓展方法代價較小,**清晰容易維護。當然,所有的架構設計技術選型都不能脫離業務,也不能過度設計。

ps:小問題,每次呼叫時我都需要new 我的工廠類,如果我把工廠類搞成乙個單例怎麼樣呢?

設計模式 工廠模式 抽象工廠模式

建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...

設計模式 工廠設計模式

用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...

設計模式 工廠設計模式

工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...