記工廠模式,策略模式,模板模式實際使用

2021-10-09 15:06:04 字數 1673 閱讀 7152

定義乙個總的plugin介面 abstractplugin

public inte***ce abstractplugin
定義乙個獲取plugin的context類

@component

public class plugincontext

public static abstractplugin getabstractplugin(string type

)}

定義多個子類

public class aplugin implements abstractplugin 

@override

public void doprocess(

)}

public class bplugin implements abstractplugin 

@override

public void doprocess(

)}

使用

abstractplugin plugin = plugincontext.getabstractplugin(

"a")

;plugin.doprocess(

);

將aplugin和bplugin改為abstract抽象類

實現各自的子類

public class nativeaplugin extends aplugin

@override

public void doprocess(

)}

public class remoteaplugin extends aplugin

@override

public void doprocess(

)}

public class nativebplugin extends aplugin

@override

public void doprocess(

)}

public class remotebplugin extends aplugin

@override

public void doprocess(

)}

在配合策略模式在使用時可以根據具體業務使用子類的type獲取對應的實現。

在具體的實現中,各個子類的實現方法內,又很多是相同的邏輯,如初始化物件,列印日誌,報錯捕捉等,這些方法可以從各個子類方法中抽取出來,這樣可以是各個具體的實現只關注自己的業務邏輯。

建立模板類

public abstract class templateplugin 

catch

(exception e)

// 列印結束日誌

}private void validate(

)

protected abstract void startprocess();

}

各子類繼承模板類,實現具體的startprocess方法進行具體的業務處理。

經過拆分後,不管是**閱讀還是之後新增刪除修改等維護都更加的方便清晰了。

策略模式,模板模式,工廠模式

自己不關心類是怎麼來的.我想要汽車,直接去 4s 店提就好,不用自己拼零件 spring 的 ioc dagger 都是這種依賴注入框架.舉個具體應用的例子 你哪天心情好把類名改了。或者把構造函式引數改了 增加或減少引數 而你 中又有n處new了這個類。如果你又沒用工廠。那你慘了。乙個乙個找來改吧。...

設計模式筆記 工廠模式

工廠模式主要是為建立物件提供過度介面,以便將建立物件的具體過程隔離,從而達到提高靈活性的目的 分類一 簡單工廠模式,工廠方法模式,抽象工廠模式 逐步抽象 分類二 工廠方法模式 包括簡單工廠模式 抽象工廠模式 1.簡單工廠模式又稱靜態工廠方法模式,存在目的 定義乙個用於建立物件的介面。組成 工廠類角色...

工廠模式 策略模式

目前遇到這樣乙個場景,就是會根據前端不同的傳值執行對應的方法策略。按照正常思路,需要在 中使用if判斷前端的值來執行不同的方法。但這樣做的缺點是會造成大量if判斷,且下次新增加乙個值對應乙個策略,那麼就需要改動 對於這種根據值來執行不同策略的場景,可以使用工廠模式 策略模式來解決。既然有策略,那麼我...