我有一个我正在处理的应用程序。对数据管理器进行设置的调用如下所示:
@RequestMapping(value = "/index", method = RequestMethod.GET)
public String createLoginForm(HttpServletResponse response){
response.setHeader("Content-Type","text/html");
return "index";
}
换句话说,数据管理器是在首次需要时设置的。
有人可以告诉我这样做是否有任何好处。在我看来,在onStart事件中调用AS.dm = new DataManager()会更简单。
public partial class App : Application
{
public App()
{
InitializeComponent();
MainPage = new Japanese.MainPage();
}
public static DataManager DB
{
get
{
if (AS.dm == null)
{
AS.dm = new DataManager();
}
return AS.dm;
}
}
protected override void OnStart()
{
AS.GetSettings();
AS.selectedPhraseCount = AS.dm.GetTotalPhrasesCountForSelectedCategories();
}
答案 0 :(得分:1)
你需要发布更多的代码(例如dm和AS声明的地方?)绝对可以肯定,但这种带有私有构造函数的静态声明的方法称为Singleton模式,旨在确保只能存在一个对象实例(在您的情况下是DataManager)。 查看现有的question
但是,您的代码在OnStart中看起来有点奇怪,因为它看起来像是使用dm支持变量而不是DM属性引用数据管理器。