您的位置:首页 > 其它

软件体系结构--单例模式

2014-05-28 10:07 120 查看

解决问题类型

一个类要求仅有一个唯一的实例,并且提供一个全局的访问点


解决设计思路

将构造方法声明为private类型,如果构造方法为public类型,则可以永远使用该构造方法创建不同的对象

在类中提供一个可以获得实例的方法,该方法必须是静态方法,否则无法调用,同时确保无论调用该方法多少次,始终返回同一个对象


具体待解决的问题UML设计

创建一个校长类对象,并保证仅有一个校长类President被创建

UML设计



核心代码

public class President {
private static President instance= null;
String name = null;

    private President(String name){
this.name = name;
}

 public static President  getInstance(String name){
if(instance == null && !name.equals(null)){
instance = new President(name);
JOptionPane.showMessageDialog(null, "创建现任校长成功!现任校长为"+instance.name);
return instance;
}
else{
JOptionPane.showMessageDialog(null, "您已经创建了现任校长,不能再创建第二次!现任校长为"+instance.name);
return instance;
}
}
}


模式的优点

1.严格控制客户程序访问其唯一的实例

2.单例类可以带有一些子类,每个子类都是单例类

3.比较容易地改变为允许创建一定数目对象的类

模式的不足

不适用于变化的对象,同一类型的对象在不同的场景需要变化时,单例模式不适用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: