单态
来源:互联网 发布:开淘宝网店安全不 编辑:程序博客网 时间:2024/04/18 12:39
单态:就是保证一个类在内存中只有一份(只有一个对象)。也就是类只存在一个实例。
1.别人不能建立对象;所以要私有化(对构造函数私有化),只在我的本类中有效。
2.别人不能建立对象;我就要在本类中建立一个对象,准备让别人来调用。
3.别人要调用我的对象;所以要提供一个方法,来获取我定义的实例。
4.对象不能调用;所以就要是静态的方法。从而成员变为静态的。
class Single{
//1.
private single(){}
//2.
private Single s = new Single();
//3.
publie Single getSingle(){
return s;
}
}
看上去好像是写完了。
别人如何调用呢?
调用方法的方法(两种):1.用对象调用。2.用类名字调用。
在这里没有对象所以就要用类名来调用。类名想调用所以方法就要是静态的。方法是静态的,所以它访问的成员应该是静态的,也就是
private Single s = new Single();应该给为 private static Single s = new Single();
publie Single getSingle()应该改为 publie static Single getSingle()
class Single{
//1.
private single(){}
//2.
private static Single s = new Single();
//3.
publie static Single getSingle(){
return s;
}
void show(){
System.out.println("first single");
}
}
class DemoSingle{
public static void man(String[] args){
//获得Single对象
Single single = Singel.getSingle();
single.show();
}
}
在Single 类中只要在想要单态时候才用实现这三步。得到类对象之后就可以用它干别的事情。调用别的方法。
另外一种单态的写法:
class Single{
//1.
private single(){}
//2.
private static Single s = null;
//3.
publie static Single getSingle(){
if(s==null){
s = new Single();
}
return s;
}
void show(){
System.out.println("single second");
}
}
class DemoSingle{
public static void man(String[] args){
//获得Single对象
Single single = Singel.getSingle();
single.show();
}
}
在用时候要考虑线程安全。第二种时必须要加关键字synchronied;所以最好用第一种。
- 单态
- 单态
- 单态
- 单例/单态模式(Singleton Pattern)
- php中的单例模式(单态)
- singleton单态
- java单态
- 单态模型设计
- 框架中的单态
- 单态模式
- 单态模式
- 单态模式(singleton)
- 单态模式
- 单态模式
- @单态模式 Singleton
- Singleton 单态模式
- Singleton单态模式
- 单态工厂模式
- 刷新验证码(转载)
- 通过代码更改数据窗口对象的方法
- 如何让你的淘宝店铺产生客流
- 哥做的不是网站 是寂寞
- Mina框架中的filter (一)解码器
- 单态
- http://www.fa.omron.com.cn/support/faqview.jsp?pid=0&id=3351&cid=null
- JavaScript实现,判断一个点是否在多边形内
- FileOperation
- 【ZT】一些正则
- 文件批量搜索替换工具比较
- spring 注意事项
- DataTable.Compute的用法
- 实用JS代码