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
- Java语言实现的单例设计模式复习
- 设计模式之单例模式java语言的实现
- Java语言实现的装饰设计模式复习
- Java复习之单例设计模式
- 设计模式--单例模式(JAVA语言实现)
- java单例设计模式的实现
- Java设计模式---单例模式的实现
- 设计模式--单例模式-Java实现
- 设计模式--单例模式--Java实现
- 设计模式-Java实现单例模式
- java语言之单例设计模式
- 设计模式复习--单例模式
- java语言实现创建型设计模式—单例模式
- 单例设计模式的N中Java实现方法
- 【JAVA面试题】设计单例模式的多线程实现
- Java单例设计模式的两种实现方式
- JAVA 实现 验证最完全的单例设计模式
- JAVA实现单例设计模式
- C++字符数组的定义与初始化
- java对redis的基本操作
- 非递归DFS
- Hibernate映射关系解析(一)--Unidirectional associations--Many-to-one
- d3.js绘制箭头
- Java语言实现的单例设计模式复习
- MySQL安装使用和常用命令
- python return
- 什么是架构师的自我修养?
- js图片懒加载资源引用
- 架构师的工作是什么?
- Java实现给定一个日期 求出这个日期是这一年中的第几天
- 什么是架构?什么是架构师?
- POJ 1220-NUMBER BASE CONVERSION 任意进制数转换