哪些因素影响要使用的适当设计模式?
澄清:
我问这个问题的原因是因为我正在设计一个需要多个静态工厂类和单例管理器类的应用程序。有时,我对于应该采用哪种设计感到困惑,并且我想问这个社区 为什么 以及 何时 可以帮助我进行一些澄清。
我将静态实用程序类用于 将在许多不同上下文中调用的共享函数 -例如,类似于java.util.Math中的数学函数。假设这些函数是“纯”函数(即,不操纵任何状态或访问除给出的参数以外的任何数据),这是一种适当的模式。
我很少使用单例,尤其是尝试避免全局单例。它们遭受了与全局变量相关的所有常见问题。它们使测试变得困难,并且除非您的单例也不变,否则它们会带来全局状态的问题。我发现它们有用的主要地方是 取决于对象标识的性能黑客 -例如:
public static final END_OF_SEQUENCE_MARKER=new EndMarker();
然后遍历一个序列时,您只需测试是否(object == END_OF_SEQUENCE_MARKER)。由于它是静态的最终参考,因此JIT会将其转变为非常快速的测试…。
编辑
看到您的澄清后,请快速补充一些评论: