状态模式:多个对象的一个​​状态

时间:2013-11-18 14:23:31

标签: java design-patterns architecture

我拥有的内容:

实体A,可以处于少数几个州(约10个)。有很多A个实体。

我想更改状态YZ或任何其他州的所有参与者。

变体1

我可以使用具有此状态的实体集合的单例状态对象:

@Service(value="SomeState")
@Scope("singleton")
class SomeState {
  List<A> entities = new LinkedList<A>();
  //...
}

优势:按州快速搜索

disadvantege:将有数千个实体。将所有这些实体保存在内存中并不是一个好主意。

变体2:

我可以让SomeStatus无状态并在整个数据库中搜索。像getAllEntitiesByStatus(Status status)这样的东西。

优点:无需在内存中保存实体

缺点:慢搜索整个数据库

的问题:

  1. 是否可以在没有OutOfMemoryException风险的情况下实现快速搜索?
  2. 可能是更好的想法吗?

0 个答案:

没有答案