最好在Factory类的内部或外部有一个缓存机制?

Ove*_*Lex 9 java oop design-patterns functional-programming

我的问题不是严格的语言相关,它更像是一般的编程概念.

如果我有一个具有返回Parser对象的方法的Factory类,以及这些解析器类,我知道,不需要每个迭代周期多次实例化(当然,在工厂之外).

在使用和对象分离方面,最好为Factory内部的所有实例化解析器创建一个缓存机制,即:在方法调用期间,或者在方法调用之外,当方法已被调用时?

提前致谢.

Nat*_* W. 6

也许你可以为你定义一个接口Factory,然后有多个实现 - 一个实现可以在内部执行缓存,以保证一个Parser类只被实例化一次.另一个实现可以不执行缓存,只是Parser在需要某个东西时提供新对象.

无论哪种方式,我建议您尝试将此逻辑保留在您的Factory实现中,并让其余的应用程序使用该Factory接口.这样,如果您稍后决定不想缓存任何内容或者您需要更改Parser实例化方式,那么您只需创建一个对象点 - 在内部Factory.这使得更改构造Parser对象的方式变得非常容易,而无需更改需要新内容的应用程序的每个部分Parser.

再一次 - 如果您创建缓存机制以在其外部运行Factory,那么这些机制将遍布您的代码,因为您必须在需要获取新代码时使用它们Parser.如果您稍后决定更改缓存机制,则必须触及大量代码,但如果您在内部执行缓存Factory,则只需更改Factory实现.