我在我的控制器中生成了许多ModelAndView对象(我发送的每个网页一个)但我不知道哪种策略会节省更多内存并且性能会更好。
这是我的两个选择:
1-在我的控制器中保留一个属性,并且每次都重复使用它:
@Controller
public class MyController{
private ModelAndView mav;
public ModelAndView methodA() {
mav = new ModelAndView(...);
return mav;
}
public ModelAndView methodB() {
mav = new ModelAndView(...);
return mav;
}
...
}
2-创建一个对象foreach方法:
@Controller
public class MyController{
public ModelAndView methodA() {
ModelAndView mav = new ModelAndView(...);
return mav;
}
public ModelAndView methodB() {
ModelAndView mav = new ModelAndView(...);
return mav;
}
...
}
其中一个有什么重要的改进? 谢谢
答案 0 :(得分:2)
出于并发原因,绝对避免使用#1。你可以使用线程A运行方法1和线程B运行方法2,其中一个将更改mav对象,然后另一个可以使用它构造的那个。
答案 1 :(得分:0)
如果对象不应该更改状态,意味着您希望维护它,那么您可以使用单例并且每次都停止创建新实例。
答案 2 :(得分:0)
我认为单身人士模式正是你要找的:-)
这里有一个很好的解释示例:http://www.oodesign.com/singleton-pattern.html