我遇到了一个应该使用领域模型中的战略模式的例子。我有一个用户类代表系统的用户。每个用户在使用系统时都可能会收到请求。一旦接收到请求时,一些处理逻辑是可能的:领域模型中的战略模式
- 自动删除请求
- 通知用户有关接收到的请求
- 等...
在这种情况下,似乎战略模式是适应的。我有一个名为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