新的,这里是我problem--共享一个实例,但创造的每个新工艺
我有4个班 - 起动器,数据库和调度和测试类。
测试类将创建一个Starter的新实例(加载并启动整个过程)。 初学者初始化调度程序和数据库类。
测试类将数据传递给启动器。 Starter将其存储在Database类的HashMap中。 调度程序读取数据库类中的相同的 HashMap。
我们保证完全相同的HashMap的是所有类的访问在我的Java项目,我有2个选项,使HashMap的静态或使数据库中的一个单例类。现在我已经为数据库创建了一个单例类。
如果Test类执行此
起动starterInstance1 =新启动器的problem--();
Starter starterInstance2 = new Starter();
我该如何确保starterInstance1和starterInstance2拥有自己的Database类或HashMap的实例?
==========
就更加明显:
类测试{
入门启动1 =新入门(); //创建我的应用程序的1个实例
start1.init(); //这将初始化调度程序等,并做了一个 “getDatabaseInstance()”
对(INT I = 0;我< 50;我++){
start1.sendData(“abc”); //将所有这50个请求提交给一个线程池,该线程池将发送请求以存储在数据库类中的HashMap中。 HashMap将由Scheduler和其他类同时访问。我已经创建了数据库类singleton,以便所有类都将访问同一个数据库实例。
}
//同样创建我的应用程序的另一实例
起动START2 =新起动();
start2.init(); //现在这里如果我做“getDatabaseInstance()”,我会得到与上面相同的实例。但我想为这个应用程序的实例单独的数据库。我如何实现这一目标?
对(INT I = 0;我< 50;我++){
START2。的SendData( “ABC”);
}
}
如果数据库是一个单身,我不明白他们怎么可能有不同的实例。这是单身模式的重点。你的问题的一部分说,所有的类都必须访问同一个确切的映射,另一个说每个起始器实例都应该有自己的实例。你想要什么? – 2012-02-04 08:49:42
是的单身意味着只有一个实例。但我不想那样。我的整个应用程序的起点是Starter类。每当创建一个新的应用程序实例(即新的Starter())时,我希望它有自己的数据库和它自己的调度程序,它们将访问同一个数据库。使数据库成为单例类不是这里的解决方案,它意味着每个新的Starter()都将使用同一个数据库。我希望每个新的Starter()都有自己的数据库 – anzaan 2012-02-04 13:43:17