1

我正在写一个画布绘画应用程序。

对于某些操作,我有一个访问者,每次鼠标选择绘图时都会使用该访问者。目前,我总是再次重新创建访问者,例如:

Visitor visitor = isStateSelected ? new SelectionVisitor() : DrawVisitor();

我应该考虑让这些访问者保持静态,还是至少为他们引入一个私有字段?或者有人会争辩说目前的方式更干净,对象创建不是很大的开销吗?

4

2 回答 2

2

我建议使用状态模式来触发适当的访问者。缓存在应用程序层中确实是个坏主意。领域模型类不应该引用它们,它们应该只存在于配置层。

于 2013-04-01T14:39:50.447 回答
1

如果此对象创建是您的应用程序的瓶颈,我认为下一步将是私有缓存。如果它没有减慢您的速度,我认为您可以继续处理下一个问题。

我喜欢尝试保持代码干净。如果您不想让访问者缓存混淆您的代码,您可以通过将其包装在一个private getVisitor()管理缓存变量的自己的方法中来保持代码分离。

于 2013-04-01T14:35:44.177 回答