我遇到了一個應該使用領域模型中的戰略模式的例子。我有一個用戶類代表系統的用戶。每個用戶在使用系統時都可能會收到請求。一旦接收到請求時,一些處理邏輯是可能的:領域模型中的戰略模式
- 自動刪除請求
- 通知用戶有關接收到的請求
- 等...
在這種情況下,似乎戰略模式是適應的。我有一個名爲RequestReceivedPolicy的接口,它有多個實現此接口的類(即每個處理邏輯有一個類)。類對應於所選策略的類的一個實例保存引用。
這似乎是正確的對象方。我的問題涉及持久性方面,在我的情況下,它是一個關係數據庫。用戶通過管理界面選擇策略。我想堅持這個選擇,以便下次用戶登錄時,保存此信息。我想過堅持堅持類的實例,但我不認爲這是正確的方式,因爲這個實例更關心邏輯而不是數據。
感謝
編輯:
public RequestReceivedPolicy {
public boolean processRequest();
}
public IgnoreRequestPolicy implements RequestReceivedPolicy {
public boolean processRequest(){
//ignore logic
}
}
public CustomRequestPolicy {
private int someData1;
private String someData2;
public boolean processRequest(){
//custom logic that uses someData1 and someData2
}
}
這取決於。您是否需要'RequestReceivedPolicy'實例的詳細信息,或僅需瞭解與用戶關聯的請求接收策略的類型? – neontapir
@neontapir由於每種策略類型都具有處理所需的關聯信息,因此我認爲我需要這些信息和策略類型。 –
使用數據建立表示邏輯模型的標準,就像規則引擎一樣。我認爲這個概念有一個術語,但我想不出一個名字。基本上,你希望你的控制器以數據的形式使用模型指令,然後你堅持下去取決於你。如果我正確理解你的問題。 – amphibient