我有@Entity
。我想对其字段进行计算。
问题是我需要为来自@Service
的某些计算使用额外的常量参数。
我该如何处理这个问题?可能我不应该将服务自动装入模型中。
另一个选择是为模型提供服务以处理所有计算并将结果存储在模型中。我不喜欢它,因为重新计算更有问题,公式不会与模型一起存储。
有什么想法吗?
答案 0 :(得分:1)
据我了解,您需要实现适配器设计模式。
适配器模式是结构设计模式。在适配器中 模式,包装类(即适配器)用于转换请求 从它到另一个类(即适应者)。实际上,适配器 提供与未提供的适配器的特定交互 直接由适应者。
您需要实现一个适配器类,它同时包含@Service
(UML中的Adaptee1和Adaptee2)中的实体和参数。计算可以在适配器方法中完成(比如UML中的methodA)
无需将Adapter类设置为spring上下文。可以在客户端代码中创建动态实例,最有可能在您的@Service
bean中创建。
我发现avajava设计模式教程简单实用,然后我建议你去看看。
另见