我遇到了一个应该使用域模型中的策略模式的例子。我有一个代表系统用户的用户类。每个用户在使用系统时可能会收到请求。在接收到请求后,一些处理逻辑是可能的:
- 自动删除请求
- 通知用户收到的请求
- ETC...
在这种情况下,似乎调整了策略模式。我有一个名为RequestReceivedPolicy的接口,其中有多个实现该接口的类(即每个处理逻辑一个类)。User类持有与所选策略对应的类的一个实例的引用。
这在对象方面似乎是正确的。我的问题涉及持久性方面,在我的情况下,它是一个关系数据库。用户通过管理界面选择策略。我想保留此选择,以便下次用户登录时保存此信息。我考虑过持久化User类持有的实例,但我认为这不是正确的方法,因为这个实例更多的是关于逻辑而不是数据。
谢谢
编辑:
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
}
}