设计模式代码
来源:互联网 发布:网络信息发布 编辑:程序博客网 时间:2024/06/03 20:43
例题
package cn.taxue;/** * 单例设计模式 * @author taxue * */public class Singleton {private static Singleton uniqueInstance = null;private Singleton(){//避免类外部被实例化}public static Singleton getInstance(){if(uniqueInstance == null){uniqueInstance = new Singleton();}return uniqueInstance;}}
单例代码的实现
package cn.taxue;public class TestStream {String name = null;public String getName() {return name;}public void setName(String name) {this.name = name;}// 构造方法private TestStream() {}private static TestStream ts1 = null;public static TestStream getTest() {if (ts1 == null) {ts1 = new TestStream();}return ts1;}public void printInfo(){System.out.println("this name is "+ name);}}
package cn.taxue;public class TMain {public static void main(String[] args) {TestStream ts1 = TestStream.getTest();ts1.setName("王乾坤");TestStream ts2 = TestStream.getTest();ts2.setName("踏雪");ts1.printInfo();ts2.printInfo();if (ts1 == ts2) {System.out.println("创建的是一个实例");} else {System.out.println("创建的不是一个实例");}}}代码运行:
this name is 踏雪
this name is 踏雪
创建的是一个实例
结论:证明单例模式为一个面向对象的应用程序提供了对象惟一的访问点,不管它实现何种功能,整个应用程序都会同享一个实例对象。
1.饿汉式单例类
/** * 饿汉式单例类.在类初始化时,已经自行实例化 * @author taxue * */public class Ehanshi {// 私有默认构造private Ehanshi(){}//已经自行实例化private static final Ehanshi ehashi = new Ehanshi();//静态工厂方法public static Ehanshi getEhanshi(){return ehashi;}}
2.懒汉式单例类
package cn.taxue;/** * 懒汉式单例类.在第一次调用的时候实例化 * * @author taxue * */public class Lanhanshi {// 私有的默认构造子private Lanhanshi() {}private static Lanhanshi lanhanshi = null;// 静态工厂方法public synchronized static Lanhanshi getIlanhanshi() {if (lanhanshi == null) {lanhanshi = new Lanhanshi();}return lanhanshi;}}
0 0
- 设计模式作业代码
- 设计模式代码
- 设计模式代码程序
- 代码片段-设计模式
- 模板设计模式代码
- 组合设计模式代码
- 组合设计模式代码
- 模板设计模式代码
- 【设计模式】整洁代码
- 大话设计模式-代码
- 设计模式-模式和代码
- 设计模式,理解模式,代码模式
- Builder 设计模式 代码示例
- 设计模式简单代码之一
- 设计模式简单代码之一
- 设计模式简单代码之一
- C#大话设计模式代码
- Interpreter 设计模式 实现代码
- 黑马程序员——继承(一)
- hdu2438Turn the corner 三分
- KMP模式识别算法
- 深入探索透视投影变换
- 初学 Java Web 开发,请远离各种框架,从 Servlet 开发
- 设计模式代码
- win7访问Linux Samba的共享目录提示“登录失败:用户名或密码错误”解决方法
- 儿子和女儿——解释器和编译器的区别与联系
- ubuntu python stackless ,install python stackless on ubuntu
- 【Unix/Linux】【命令】【文本工具】标准输出打印/连接文件——cat
- IOS控件UILabel总结
- H.264学习历程
- 如何判断单链表里面是否有环?
- ol3 结构图 仅限ol.source.Source