`

java中关于单态类

阅读更多
最近在学习的过程中遇到了java的单态模式,有点头晕!于是在网上搜集了点资料整理一下。

单态模式的定义:就是保证java应用程序里一个类里只能有一个实例

单态模式的实现:·限制某个类只能在该类内部生成对象,我们可以把类中的声明函数定义限制为private

                                ·其他的类要访问该类的对象,就需要一个静态的函数,该函数返回本类的对象成员

                                ·在类内部生成一个静态实例

                                     public class Singleton {

                                               private Singleton(){}

                                               //在自己内部定义自己一个实例,是不是很奇怪?
                                               //注意这是private 只供内部调用

                                               private static Singleton instance = new Singleton();

                                                    //这里提供了一个供外部访问本class的静态方法,可以直接访问  
                                              public static Singleton getInstance() {
                                        return instance;   
                                                                                                                }
                                                                              }


java单态类的简单实现代码:
package com.sdjt.study.java;    
/**  
 * @author:lyy
 * @version 创建时间:2009-8-8 上午09:27:27  
 * 类说明  
 */ 
public class Onlyone {
	static Onlyone myOnlyone;
	static int add = 0;
	/** 
	    * 初始化方法 定义为私有的。  
	    * 
	    */ 
	private Onlyone(){
		System.out.println("哈哈,我是一个单态类的实例!");
	}
	/** 
	    * getOnlyone将对象实例化的方法, 
	    * 原理也是调用初始化方法。 
	    * 但调用之前先判断myOnlyone是否为空, 
	    * 如果不为空那么返回myOnlyone, 
	    * 如果为空那么调用初始化方法将对象实例化。 
	    * 这样保证这个对象只有一个实例。 
	    * 在实际应用中这种单态类经常用到。 
	    * @return 
	    */ 
	public static Onlyone getMyOnlyone(){
		if(myOnlyone != null){
			return myOnlyone;
		}
		myOnlyone = new Onlyone();
		return myOnlyone;
	}
	/** 
	    * 察看add值的方法 
	    * @return 
	    */ 
	public static int getAdd(){ 
	return add; 
	} 
	/** 
	    * 不管写什么类最好都重载toString()函数 
	    * 因为什么?? 
	    * 老师说的,记住就好了! 
	    */ 
	public String toString(){ 
	return ("add = " 
	    + add); 
	} 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Onlyone myonlyone = Onlyone.getMyOnlyone(); 
		System.out.println("进行第一次构造 Onlyone 的实例后:add = " + Onlyone.getAdd()); 
		Onlyone myonlyone2 = Onlyone.getMyOnlyone(); 
		System.out.println("进行第二次构造 Onlyone 的实例后:add = " + Onlyone.getAdd()); 
		//可以看到第二次没有输出"哈哈,我是一个单态的实例!"并且add的值仍然是0
		//说明Onlyone类只有一个实例存在 
	}

}
分享到:
评论

相关推荐

    Java中单态设计模式

    ### Java中单态设计模式详解 #### 一、引言 设计模式是在长期软件开发过程中提炼出来的最佳实践,它们提供了一种标准化的方式用于解决特定类型的问题。对于Java开发者而言,熟悉并掌握各种设计模式是非常重要的,...

    Java实现的单态登陆

    在面向对象编程中,单态模式保证一个类只有一个实例,并提供一个全局访问点。在单态登录的场景下,这个实例通常是一个包含用户登录状态信息的对象。 1. **单态模式实现**: - 在Java中,我们通常通过私有构造函数...

    java单态例子

    是个使用java实现的单态例子,开始接触java单态的或是不了解单态是怎么实现的同僚,是个不错的参考

    单态模式(PPT)

    单态模式,是一种常用的软件设计模式,其核心思想是确保一个类在整个应用程序中只有一个实例,并提供全局访问点。这种模式的出现主要是为了解决对象创建的控制问题,特别是在某些需要频繁创建和销毁的对象中,单态...

    JAVA设计模式(单态模式和简单工厂模式)

    Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 在项目的很多地方都会用到它,比如说数据库的链接。 使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于...

    简单的Java单态例子

    这个一个简单的java例子,可以为新手加深对java单态模式的理解.....

    【Java设计模式】单态模式

    单态模式是在面向对象设计中实现类似单例行为的一种替代方法,确保Java应用程序中的共享状态。它强制实现一种独特的行为,即类的所有实例共享相同的状态。与单例模式不同,单例模式将类限制为单个实例,单态模式允许...

    java代码笔记2010-05-31:继承this()的使用多态;单态;静态初始化;==比较的是地址;参数传递的是个值的拷贝还是引用的传递;循环菱形

    在Java编程语言中,本文将深入探讨几个关键概念,包括继承中的`this()`构造器调用、多态性、单态设计模式、静态初始化、对象引用的`==`比较以及参数传递机制。这些知识点是Java程序员必备的基础知识,对理解和编写...

    单态登录——只能在一个机器上登录(完整实例)

    在Java开发中,实现单态登录通常涉及以下几个核心知识点: 1. **会话管理**:单态登录的基础是有效地管理用户的会话。在Web开发中,Java使用`HttpSession`对象来存储用户会话信息,例如用户ID、登录状态等。当用户...

    单态模式(代码)

    单态模式(Singleton Pattern)是软件设计模式中的一种,它保证了类只有一个实例,并提供一个全局访问点。这种模式在很多场景下非常有用,比如配置管理、线程池、缓存管理和日志记录等,因为它可以确保在整个系统中...

    MyEclipse\单态.rar

    单态(Singleton)模式是软件设计模式中的一种,它的核心思想是确保一个类只有一个实例,并提供一个全局访问点。在Java编程中,单态模式被广泛应用于那些需要频繁实例化然后销毁的对象,或者创建对象需要消耗大量...

    单态模式的设计和应用

    单态模式(Singleton Pattern)是一种常用的软件设计模式,它的核心目标是确保一个类在整个应用程序中只有一个实例,并提供全局唯一的访问点。这种模式在资源管理、配置管理、对象协调等方面有广泛应用,例如创建...

    单态模式和简单工厂模式

    在Java中,简单工厂模式通常包含一个工厂类,一个抽象产品接口和若干个具体产品类。工厂类根据输入参数或者条件来决定创建哪个具体的产品实例。 结合源代码分析,`Demo1012`可能包含了这两种模式的示例代码。可以...

    单态模式的练习

    在Java或其他面向对象语言中,单态模式的实现有多种方式,但核心思想都是限制类的实例化过程。 一、单态模式的基本结构 单态模式通常包含以下关键部分: 1. 单例类:这个类只能被实例化一次,它负责创建自己的唯一...

    DataSource的单态模式(SingleTon)程序---马克-to-win java视频

    DataSource的单态模式(SingleTon)程序---马克-to-win java视频 数据源 单态模式 dataSource Singleton

    单态模式1---马克-to-win Java视频

    单态模式 马克-to-win Java视频 Singleton 单例模式

    单态模式2---马克-to-win java视频

    单态模式 马克-to-win java视频 Singleton 单例模式

    单态模式3---马克-to-win java视频

    单态模式 马克-to-win java视频 Singleton 单例模式

    [浪曦原创]JAVA设计模式 第2讲 单态模式和简单工厂模式(jzkangta).rar

    Java设计模式是软件开发中的重要概念,它们是解决常见...这个压缩包资料“[浪曦原创]JAVA设计模式 第2讲 单态模式和简单工厂模式(jzkangta)”应包含了详细的讲解和示例代码,可以帮助深入理解和应用这两种设计模式。

    Java语言中的构造方法私有化.pdf

    在Java中,除了单态模式,构造方法私有化还常用于其他设计模式,如工厂模式(Factory Pattern)和抽象工厂模式(Abstract Factory Pattern),以及作为静态工具类(Static Utility Class)的实现方式,防止这些类被...

Global site tag (gtag.js) - Google Analytics