今题那站在这里和大家一起分享最近在一本书上看到的关于设计模式的内容,接下来要讲的设计模式有:
- 单例模式
- 简单工厂模式
- 工厂方法和抽象工厂
- 代理模式
- 命令模式
- 策略模式
- 门面模式
- 桥接模式
- 观察者模式
接下来详细介绍灭一种设计模式(注意:下面的讲解都是基于java语言)
1.单例模式
定义:Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
java单例模式代码片段:
public class SingletonClass{
private static volatile SingletonClass instance=null;
public static SingletonClass getInstance(){
if(instance==null){
synchronized(SingletonClass.class){
if(instance==null){
instance=new SingletonClass();
}
}
}
return instance;
}
private SingletonClass(){}
}
为什么需要单例模式?
- 对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如在Windows中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存资源;如果这些窗口显示的内容不一致,则意味着在某一瞬间系统有多个状态,与实际不符,也会给用户带来误解,不知道哪一个才是真实的状态。因此有时确保系统中某个对象的唯一性