GoF 23个经典的设计模式05--创建模式之单例模式(未完代续)
来源:互联网 发布:阿里云合作伙伴有哪些 编辑:程序博客网 时间:2024/04/19 08:54
单例模式用得比较多,可能大家都会比较熟悉。
单例模式:一个对象只产生一个实例,并提供一个全局的入口方法。
Ensure a class has only one instance, and provide a global point of access to it. [GoF, p127]
单例又分为饿汉和懒汉方式,我觉得他们效果和性能差不多,所以不想多说,只实现比较简单的懒汉方式,容易理解。
对象先自己创建,再提供一个入口方法提供调用
UML整理
Client
在创建一个给自己提供实例的类
再说懒汉和饿汉,从效率分析,饿汉效率比较高,实现上看懒汉好。如果有兴趣可以google或baidu一下吧。
单例模式:一个对象只产生一个实例,并提供一个全局的入口方法。
Ensure a class has only one instance, and provide a global point of access to it. [GoF, p127]
单例又分为饿汉和懒汉方式,我觉得他们效果和性能差不多,所以不想多说,只实现比较简单的懒汉方式,容易理解。
对象先自己创建,再提供一个入口方法提供调用
UML整理
Client
package org.benewu.patterns.singleton;
public class Client {
public static void main(String[] args) {
Singleton singletonA = Singleton.getInstance();
Singleton singletonB = Singleton.getInstance();
System.out.println(singletonA);
System.out.println(singletonB);
}
}
public class Client {
public static void main(String[] args) {
Singleton singletonA = Singleton.getInstance();
Singleton singletonB = Singleton.getInstance();
System.out.println(singletonA);
System.out.println(singletonB);
}
}
在创建一个给自己提供实例的类
package org.benewu.patterns.singleton;
public class Singleton {
private static Singleton singleton = new Singleton ();
private Singleton (){
}
public static Singleton getInstance(){
return singleton;
}
}
public class Singleton {
private static Singleton singleton = new Singleton ();
private Singleton (){
}
public static Singleton getInstance(){
return singleton;
}
}
再说懒汉和饿汉,从效率分析,饿汉效率比较高,实现上看懒汉好。如果有兴趣可以google或baidu一下吧。
- GoF 23个经典的设计模式05--创建模式之单例模式(未完代续)
- GoF 23个经典的设计模式02--创建模式之创建者模式(未完代续)
- GoF 23个经典的设计模式04--创建模式之原型模式(未完代续)
- GoF 23个经典的设计模式03--创建模式之工厂方法(未完代续)
- GoF 23个经典的设计模式01--创建模式之抽象工厂(未完代续)
- GoF 23个经典的设计模式6--结构模式之适配器模式(未完代续)
- GoF 23个经典的设计模式7--结构模式之Bridge桥接模式(未完代续)
- GoF 23个经典的设计模式8--结构模式之 Composite组合模式(未完代续)
- GoF 23个经典的设计模式13--行为模式之 责任链模式(未完代续)
- GoF的23个经典设计模式
- GoF 的23个经典设计模式
- GOF设计模式之“单例模式”
- 【转】GoF的23个经典设计模式
- GOF 23种设计模式 创建类模式 (1) 单例模式
- GoF设计模式学习-单例模式
- GOF 23个基本的设计模式
- GOF 23个基本的设计模式
- 单例模式--GOF的23个之一
- 基于J2EE的Blog平台
- BEA WebLogic平台下J2EE调优攻略
- 学VC时做的一些笔记
- C++中一些基本概念
- .net方法参数注释编写实例[原创]
- GoF 23个经典的设计模式05--创建模式之单例模式(未完代续)
- IE图标显示
- C#编程规范
- BVT(Build Verification Test)
- 开博
- 使用EMF持久化和WTP持久化EMF对象两种方案的模型区别
- 第一篇 梦开始的地方
- C 编程最佳实践
- DES的建立过程