Java面向对象_单例设计模式

单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点

1.构造方法私有化

2.声明一个本类对象

3.给外部提供一个静态方法获取对象实例

两种实现方式:饿汉式和懒汉式

何种情况下使用呢?当一个类中没有属性(对象的状态);该类作为工具类使用非常频繁;

好处:节省内存(因为不断创建对象会消耗内存)

 1 public class Practice14 {
 2
 3     public static void main(String[] args) {
 4         // TODO Auto-generated method stub
 5         Single s=Single.getInstance();
 6         s.method();
 7 }
 8 }
 9 //饿汉式
10 class Single{
11     private static Single single=new Single();
12     private Single(){ //构造方法私有化,为了防止在本类外部实例化对象
13
14     }
15     public static Single getInstance(){
16         return single;
17     }
18     public void method(){
19         System.out.println("method");
20     }
21 }
22 //懒汉式
23 class Single2{
24     private static Single2 single=null;
25     private Single2(){ //构造方法私有化
26
27     }
28     public static Single2 getInstance(){
29         if(single==null){
30             single=new Single2();
31         }
32         return single;
33     }
34     public void method(){
35         System.out.println("method");
36     }
37 }
时间: 2024-08-09 14:39:00

Java面向对象_单例设计模式的相关文章

笔记:Java中的单例设计模式

之前接触过单例模式,当初不明白这样的设计用意,今天特地研究了下java中的单例设计模式的用处及用法. 单例模式:单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.一个类有且仅有一个实例,并且自行实例化向整个系统提供. 单例模式的用处:一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务:一个系统只能有一个窗口管理器或文件系统:一个系统只能有一个计时工具或ID(序号)生成器.如在Windows中就只能打开一个任务管理器.如果不使用机制对窗口对象进行唯一化,将

设计模式整理_单例设计模式

单例设计模式,它确保一个类只有一个实例,并提供一个全局访问点. 由于单例设计模式对应的类只能创建一个对象,因此它所对应的方法必须是static(不是static只有创建对象才能调用). 以下是单例模式的一个经典实现:采用了延迟加载对象的例子. public class Single1 { private static Single1 single; //利用一个静态变量来记录Single1的唯一实例,这里没有直接声明,采用了延迟加载模式. private Single1(){} //把构造器声明

Java学习之单例设计模式

单例设计模式:解决一个类在内存只存在一个对象. (1) 想要保证对象唯一. a)为了避免其他程序过多建立该类对象.先禁止其他程序建立该类对象 b)还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象. c)为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式. (2) 这三部怎么用代码体现呢? a)将构造函数私有化. b)在类中创建一个本类对象. c)提供一个方法可以获取到该对象. (3) 对于事物该怎么描述,还怎么描述. 当需要将该事物的对象保证在内存中唯一时,就将以上的三

Java中的单例设计模式举例

本例中通过将构造函数私有化的方式将实例化对象的代码放到类内部的静态函数中,从而实现单例设计模式. class Singleton { static Singleton instance = new Singleton(); private Singleton() { } public static Singleton getInstance() { return Singleton.instance; } public void func() { System.out.println("Hi t

java面试题 单例设计模式

单例设计模式 某个类必须只有一个实例 (构造器私有化) 类必须自行创建实例(含有一个该类的静态变量存储该实例) 类自行向其他类提供这个实例  (对外提供获取该实例对象的方式) 饿汉式 在类初始化的时候直接创建对象  不存在线程安全问题  1.直接实例化饿汉式(简洁直观)   2.静态代码块饿汉式(适合复杂实例化)   3.枚举式(最简洁) 1 1 public class Singleton1 { 2 public final static Singleton1 singleton = new

黑马程序员_单例设计模式总结

/* 设计模式:对于解决某一问题最行之有效的解决方案 问题:一个类在内存中只有一个对象存在 解决方案:单例模式 单例模式:饿汉式.懒汉式 实现思想: 1.禁止其他类创建类的对象 2.自己在本类中创建本类对象 3.对外提供一个对该对象的访问方式 实现步骤: 1.将构造函数私有化 2.在类中创建一个本类的对象. 3.用一个方法对外提供本类对象. */ /*懒汉式,会出现安全问题,所以需要改进一下,利用的是多线程的技术*/ class Single { private static Single s

java中的单例设计模式

一.饿汉式,线程安全的. package com.cal; public class SingleTon { //1.私有的构造方法,不应许new对象 private SingleTon(){} //2.自己提供一个私有的静态对象 private static SingleTon instance = new SingleTon(); //3.给外部提供一个公共的静态方法 public static SingleTon getInstance(){ return instance; }} 二.懒

Java设计模式之一 单例设计模式

1.什么叫设计模式: 设计模式的概念首先来源于其它行业:建筑业,在早起建房子的时候,肯定是经验缺乏.显得杂乱无序的,这就会造成很多问题,在行业发展过程,通过不断的经验积累,前辈们针对这些问题提出了合理解决方案,这就是设计模式,参照设计模式往往可以解决很多问题,在计算机编程方面,也会出现类似问题,所以牛人们把这些解决问题的方案进行归类和总结,形成了面向对象编程的23种设计模式. 2.单例模式(特点): Java中单例模式定义:"一个类有且仅有一个实例,并且自行实例化向整个系统提供."通过

JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖

JAVA之旅(六)--单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖 java也越来越深入了,大家加油吧!咱们一步步来 一.单例设计模式 什么是设计模式? JAVA当中有23种设计模式,解决某一问题最有效的方法 单例设计模式 解决一个类在内存中只存在一个对象 想要保证对象唯一该怎么做> 1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象 2.还为了让其他程序访问到该类对象,只好在本类中自定义一个对象 3.为了方便其他程序对自定义对象的访问,可以对外提供