一起学Java设计模式--单例模式(创建型模式)

单例模式

用懒汉式单例实现在某系统运行时,其登录界面类LoginForm只能够弹出一个,如果第二次实例化该类则提示“程序已运行”。绘制类图并编程实现。

UML类图:

import javax.swing.JFrame;
import javax.swing.JOptionPane;
class LoginForm extends JFrame{ // Java.swing包中的JFrame类用于创建窗口
	 
	private static LoginForm instance = null;
	private LoginForm()
	{	
		//设置标题
		this.setTitle("LoginForm"); 
	    this.setSize(400, 300); // setSize(int width, int height)
 	    //设置关闭按钮的事件 
	    this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
	    //设置是否可见
	    this.setVisible(true);  
	}
	
	synchronized public static LoginForm getInstance()
	{
		if(instance == null){
  	instance = new LoginForm();
  }else
     {
			JOptionPane.showMessageDialog(null, "LoginFrame已经在运行!");
		}
		return uniqueInstance;
	}
}

class LoginFormClient
{
	public static void main(String args[])
	{
		LoginForm loginForm1 = null;
		LoginForm loginForm2 = null;
		
		loginForm1 = LoginForm.getInstance();
		loginForm2 = LoginForm.getInstance();
		
		System.out.println("loginForm1 == loginForm2 ? o_0");
		System.out.println(loginForm1 == loginForm2);
	}
} 
运行结果:

一起学Java设计模式--单例模式(创建型模式)_第1张图片

你可能感兴趣的:(java设计模式)