//single 實例 一次只能有一個打印任務,但是卻有n臺打印機,我們隨機的安排打印機
class LoadBalancer
{
private Random rd=new Random();
private static LoadBalancer ld=null;
ArrayList<String> serverLs=new ArrayList<String>();
protected LoadBalancer()
{
serverLs.add("server1");
serverLs.add("server2");
serverLs.add("server3");
serverLs.add("server4");
}
public static synchronized LoadBalancer getInstance()
{
if(ld==null)
{
ld=new LoadBalancer();
}
return ld;
}
public String getServer()
{
int i= rd.nextInt(serverLs.size());
return serverLs.get(i).toString();
}
}
我們的測試類:
public class MotherTest {
public static void main(String[] args)
{
MotherTest mt=new
MotherTest();
mt.TestSin3();
}
public void TestSin3()
{
LoadBalancer l1= LoadBalancer.getInstance();
LoadBalancer l2= LoadBalancer.getInstance();
LoadBalancer l3= LoadBalancer.getInstance();
LoadBalancer l4= LoadBalancer.getInstance();
if((l1==l2)&& (l2==l3)&& (l3==l4)&&(l4==l1))
{
System.out.println("ok");
}
System.out.println(l1.getServer());
System.out.println(l2.getServer());
System.out.println(l3.getServer());
System.out.println(l4.getServer());
}
}