我想创建一个返回对象的Factory,这个对象可以用来与缓存系统进行交互。
哪种方式更好?每次返回一个新对象或每次只使用相同的对象。
Factory getInstance(Type type){
switch(type){
case 1 : return A();
case 2 : return B();
}
}
或返回相同的对象
class Factory {
private static A a = new A();;
private static B b = new B();
Factory getInstance(Type type){
switch(type){
case 1 : a;
case 2 : b;
}
}
}
A或B的重新调整对象具有非静态方法,这些方法将使用单个静态实例访问Hazelcast服务器。
答案 0 :(得分:0)
如果你确定A和B都不带状态并且是真正的线程保存,那么重用同一个实例可能是一个很好的优化。遵循工厂模式的一个很好的例子是你最好的选择:
http://www.tutorialspoint.com/design_pattern/factory_pattern.htm
常见的实现方法是创建一个单件工厂。如果搜索它,您可以轻松看到这个示例。这是一个体面的:
http://www.java2s.com/Tutorial/Java/0460__Design-Pattern/SingletonFactory.htm
答案 1 :(得分:0)
一般原则是KISS。
所以,
结论:我宁愿使用没有Factory变量的第一个解决方案。至少作为初始工厂实施。
答案 2 :(得分:0)
不要重新发明轮子,使用DI库。有一个用于做这些事情的图书馆,Spring是最知名的。他们可以为您生成工厂和管理bean。
这可能因为这种需要而无法胜任,但我很惊讶你不需要所有的应用程序。