我正在写一个Canvas绘画应用程序。
对于某些操作,我每次使用鼠标选择绘图时都会使用访问者。 目前我再次重新创建访客,如:
Visitor visitor = isStateSelected ? new SelectionVisitor() : DrawVisitor();
我是否应该考虑让这些访问者保持静态,或至少为他们引入私人领域?或者可以说现在的方式更干净,对象创造不是一个很大的开销?
答案 0 :(得分:2)
我建议使用状态模式来触发相应的访问者。缓存在应用程序层中确实是个坏主意。域模型类不应该引用它们,它们应该仅存在于配置层中。
答案 1 :(得分:1)
如果此对象创建是您的应用程序的瓶颈,我认为私有缓存将是下一步。如果它没有减慢你的速度,我想你可以继续讨论下一个问题。
我喜欢保持代码清洁的尝试。如果您不希望使用访问者缓存来混淆代码,可以通过将其包装在管理缓存变量的private getVisitor()
方法中来将其分开。