设计模式系列之单例模式和观察者模式
来源:互联网 发布:windows 执行dll文件 编辑:程序博客网 时间:2024/05/18 00:44
1.单例模式
懒汉式(线程不安全)
public class Singleton{
private Singleton(){
}
private static Singleton singleton=null;
public static Singleton getInstance(){
if(singleton==null){
singleton=new Singleton();
}
return singleton;
}
}
private Singleton(){
}
private static Singleton singleton=null;
public static Singleton getInstance(){
if(singleton==null){
singleton=new Singleton();
}
return singleton;
}
}
饿汉式
public class Singleton{
private Singleton(){
}
private static final Singleton singleton=new Singleton();
public static Singleton getInstance(){
return singleton;
}
}
}
private Singleton(){
}
private static final Singleton singleton=new Singleton();
public static Singleton getInstance(){
return singleton;
}
}
}
解决懒汉式线程不安全的问题,在getInstance方法上加synchronized关键字
即 public static synchronized Singleton getInstance()
但是直接在方法上加synchronized关键字这样的效率低下,可以采取以下方式:
public Class Singleton{
private Singleton singleton=null;
private Singleton(){}
public static Singleton getInstance(){
if(singleton==null){ //第一次检查
synchronized(Singleton.class){
if(singleton==null){ //第二次检查
singleton=new Singleton();
}
}
}
return singleton;
}
}
2.观察者模式
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时观察一个主题对象。这个主题对象在发生变化时,会通知所有的观察者对象,使它们能够更新自己。
UML图
一般Subject和Observer定义为抽象类或接口,图中四个角色抽象主题、具体主题、抽象观察者和具体观察者
代码:
0 0
- 设计模式系列之单例模式和观察者模式
- 设计模式系列之单例模式
- 设计模式系列之 单例模式
- 设计模式系列之单例模式
- 【大话设计模式系列】之观察者模式
- 设计模式系列之四:观察者模式
- 设计模式系列总结之观察者模式
- Java设计模式系列之观察者模式
- java设计模式系列之观察者模式
- 设计模式系列之三观察者模式
- 设计模式--单例模式,观察者模式,适配器模式
- 设计模式之单元素模式与观察者模式
- 设计模式系列:观察者模式
- 【设计模式系列】--观察者模式
- 单例模式和观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- mysql jdbc在hive中没有安装导致的两个问题
- MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建
- 基于改进形态学滤波的点云分类算法------续
- kali信息收集工具之Automater
- 图像数据库
- 设计模式系列之单例模式和观察者模式
- css笔记
- USACO 3.1.1最小网络题解
- Putty 字体 颜色 全屏设置
- 人生经验 紧张复习,期末考试结束后不要立刻学习
- Android自定义控件
- Linux网络编程入门-3
- squid varnish nginx做cache有什么不同
- mvc.mvp,mvvm