Java语言实现的单例设计模式复习

来源:互联网 发布:中国网络大学 编辑:程序博客网 时间:2024/05/22 02:14

1 单例设计模式概述

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。它是对问题行之有效的解决方式和思想。
单例(单个实例)设计模式可以保证一个类在内存中的对象唯一性。比如对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。为了保证对象的唯一性,一是不允许其他程序用new创建该类对象;二是在该类创建一个本类实例对象;三是对外提供一个方法让其他程序可以获取该对象。步骤:私有化该类的构造函数;通过new在本类中创建一个本类对象;定义一个公有的方法,将创建的对象返回。

2 “饿汉式”单例设计模式程序示例

package captain;public class SingleDemo {public static void main(String[] args) {// TODO Auto-generated method stubSingleTest st1 = SingleTest.getInstance();SingleTest st2 = SingleTest.getInstance();st1.setNum(10);st2.setNum(20);System.out.println(st1.getNum());System.out.println(st2.getNum());}}class SingleTest{private int num;//“饿汉式”(类一旦加载对象就被创建)单例设计模式的三步private static SingleTest st = new SingleTest();//在该类中创建一个本类的私有化静态的对象private SingleTest(){}//私有化该类的构造函数public static SingleTest getInstance(){//对外提供一个公有化静态的方法返回一个该类的对象。return st;}public void setNum(int num){this.num = num;}public int getNum(){return num;}}

3 “懒汉式”单例设计模式程序示例

package captain;public class SingleDemo {public static void main(String[] args) {// TODO Auto-generated method stubSingleTest st1 = SingleTest.getInstance();SingleTest st2 = SingleTest.getInstance();st1.setNum(10);st2.setNum(20);System.out.println(st1.getNum());System.out.println(st2.getNum());}}class SingleTest{private int num;//“懒汉式”(调用getInstance方法时才创建对象)单例设计模式的三步,这种单例设计模式在多线程中存在线程安全问题。private static SingleTest st = null;//在该类中声明一个本类的私有化静态的对象的空引用。private SingleTest(){}//私有化该类的构造函数public static SingleTest getInstance(){//对外提供一个公有化静态的方法返回一个该类的对象。if(st == null)st = new SingleTest();return st;}public void setNum(int num){this.num = num;}public int getNum(){return num;}}                                                                                                                                                         

0 0
原创粉丝点击