`
ITCheng
  • 浏览: 77912 次
  • 来自: 北京
社区版块
存档分类
最新评论

单例模式

    博客分类:
  • Mvc
阅读更多

----------------------------------------单例模式(饿汉,懒汉)

 

//单例
public class TestSingle {

	private static TestSingle instance=new TestSingle();//饿汉模式
	//1.构造方法私有化
	private TestSingle(){
		
	}
	//2.提供一个方法获得该对象的实例(懒汉模式)
	public  static synchronized TestSingle getInstance(){
//		if(instance==null){
//			instance=new TestSingle();
//		}
		return instance;
	}
}

 

 

 

------------------------------------属性文件的读取

 

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Properties;

public class TestPropertes {
	 public static void main(String[] args) {
		Properties pro=new Properties();
	
		InputStream is=null;
		OutputStream out=null;
		try {
			is=new FileInputStream("db.properties");
			pro.load(is);
			pro.setProperty("driver", "1234567");
			out=new FileOutputStream("db.properties");
			pro.store(out,"aaaaaa");
			
			System.out.println(pro.get("hello"));
		} catch (FileNotFoundException e) {
		
			e.printStackTrace();
		} catch (IOException e) {
		
			e.printStackTrace();
		}finally{
			try {
				out.close();
				is.close();
			} catch (IOException e) {
				
				e.printStackTrace();
			}
			
		}
	}
}

 

  

---------------------------------------属性文件配合单例模式的应用

 

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * 将读属性设计成单例模式
 * @author Administrator
 *
 */
public class Env extends Properties {
	private static Env instance;

	private Env() {
		//创建一输入流,该路径文件必须在src目录下的文件才有效
		InputStream is = this.getClass().getResourceAsStream(
				"/resource/db.properties");
		try {
			//加载文件中的数据到内存中(到properties对象中)
			this.load(is);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public static synchronized Env getInstance() {
		if (instance == null) {
			instance = new Env();
		}
		return instance;
	}
}

 

   如果不导入import架包

   则在获取时应该写Env.getInstance().getProperty("driver");

   这样子可以增加代码的可读性,可以避免阅读代码者看作是本类得方法属性.

 

//静态导入
import static util.Env.getInstance;
public class BaseManagerDAO {
	
	private static final String DRIVER =getInstance().getProperty("driver");
	private static final String URL = getInstance().getProperty("url");
	private static final String UNAME = getInstance().getProperty("uname");
	private static final String UPASS = getInstance().getProperty("upass");
	public Connection con=null;
	public void getCon(){
		try {
			Class.forName(DRIVER);
			con=DriverManager.getConnection(URL,UNAME,UPASS);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	    
	}

 属性文件属于键值映射的文件

 在该示例中,属性文件内容为

 #aaaaaa
 #Tue Jul 12 15:20:53 CST 2011
 url=jdbc:oracle:thin:@localhost:1521:ORCL
 driver=oracle.jdbc.driver.OracleDriver
 uname=accp
 upass=accp

分享到:
评论

相关推荐

    43丨单例模式(下):如何设计实现一个集群环境下的分布式单例模式?1

    单例模式是一种设计模式,旨在确保一个类只有一个实例,并提供全局访问点。在单例模式中,类的构造函数是私有的,防止外部直接创建对象,而是通过静态方法获取该类的唯一实例。单例模式的唯一性通常是在进程范围内,...

    设计模式单例模式和工厂模式综合应用

    "设计模式单例模式和工厂模式综合应用"的主题聚焦于两种常用的设计模式:单例模式和工厂模式,并探讨它们如何协同工作来实现高效、灵活的代码结构。这个主题尤其适用于Java编程语言,因为Java的面向对象特性使得设计...

    设计模式之单例模式(结合工厂模式)

    单例模式是软件设计模式中的一种经典模式,它保证了类只有一个实例存在,并提供一个全局访问点。在Java等面向对象编程语言中,单例模式常用于管理共享资源,如数据库连接池、线程池或者配置文件等。结合工厂模式,...

    java单例模式实例

    单例模式是软件设计模式中的一种经典模式,用于确保一个类只有一个实例,并提供一个全局访问点。在Java中,有多种实现单例模式的方法,每种都有其特点和适用场景。接下来,我们将深入探讨这些实现方式。 首先,我们...

    使用C++11实现线程安全的单例模式

    在C++编程中,单例模式是一种常用的软件设计模式,它保证一个类只有一个实例,并提供一个全局访问点。线程安全的单例模式在多线程环境下尤其重要,因为不正确的实现可能导致多个线程创建多个实例,这违反了单例模式...

    设计模式——单例模式

    **设计模式——单例模式** 在软件工程中,设计模式是一种在特定场景下解决常见问题的标准方案,可以被复用并提升代码质量。单例模式是设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。这种模式...

    C#单例模式详解 C#单例模式详解C#单例模式详解

    单例模式是软件设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。在C#中,单例模式常用于管理共享资源或控制类的实例化过程,以提高性能、节约系统资源,特别是在整个应用程序生命周期内只需要一...

    7种单例模式

    单例模式是软件设计模式中的一种经典模式,其主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下非常有用,比如控制共享资源、管理配置对象等。下面将详细介绍七种常见的单例模式实现...

    使用单例模式实现计数器

    其中,单例模式是一种非常经典且常用的设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。在C#中,我们可以利用单例模式来创建一个计数器类,以确保在整个应用程序的生命周期内,计数器只...

    使用单例模式创建学生管理系统(饿汉式、懒汉式)

    单例模式是软件设计模式中的一种,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。在Java或类似的面向对象编程语言中,单例模式常用于管理共享资源,如数据库连接池、线程池或者配置文件等。在这个...

    c++单例模式线程日志类

    在C++编程中,单例模式是一种常用的软件设计模式,它保证一个类只有一个实例,并提供一个全局访问点。在这个特定的场景中,我们讨论的是一个实现了单例模式的日志类,该类专为多线程环境设计,具备日志等级控制、...

    单例模式实现mdi界面子窗体控制

    首先向关注过我这个系列...这立刻让我想到了最常用也是最简单最容易理解的一个设计模式 单例模式 何为 单例模式 ? 故名思议 即 让 类 永远都只能有一个实例。 由于 示例代码 比较简单 我也加了注释,这里就不在赘述

    几种单例模式demo

    单例模式是软件设计模式中的一种,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下都非常有用,比如控制资源的唯一性、管理共享配置或者创建昂贵的对象时避免频繁创建销毁。 ...

    深入Java单例模式浅析

    在Java编程中,单例模式是一种常用的设计模式,其核心目标是确保类只有一个实例,并提供一个全局访问点。在本文中,我们将深入探讨Java中的单例模式,包括两种常见的实现方式:懒汉式(lazy initialization)和饿汉...

    Java 单例模式 工具类

    Java中的单例模式是一种常用的软件设计模式,它保证一个类只有一个实例,并提供全局访问点。在Java编程中,单例模式常用于控制资源的访问,比如数据库连接池、线程池或者日志对象等。本篇文章将深入探讨如何在Java中...

    单例模式详解~~单例模式详解~~

    单例模式是一种设计模式,它的主要目标是确保一个类只有一个实例,并提供一个全局访问点。在软件工程中,单例模式常用于控制资源的共享,比如数据库连接池、线程池或者日志系统等,这些资源通常需要全局唯一且高效地...

    单例模式(singleton)

    单例模式是软件设计模式中的一种,它的核心思想是确保一个类在整个系统中只有一个实例,并提供一个全局访问点。在Java或类似编程语言中,单例模式常常被用来管理资源,比如数据库连接、线程池或者配置信息,因为这些...

    OOP单例模式和工厂模式

    ### OOP中的单例模式与工厂模式 #### 单例模式和工厂模式概述 在面向对象编程(OOP)领域,设计模式被视为一种通用的解决方案,用于解决在软件设计过程中遇到的常见问题。这些模式提供了经过验证的设计策略,有助...

    设计模式之单例模式源码demo

    单例模式是软件设计模式中的经典模式之一,其主要目的是控制类的实例化过程,确保在应用程序的整个生命周期中,某个类只有一个实例存在。这样的设计通常适用于那些需要频繁创建和销毁,但资源消耗较大的对象,如...

    23钟设计模式之单例模式

    单例模式是一种常用的设计模式,它的核心思想是在整个应用程序中,一个类只能有一个实例存在。单例模式常用于控制资源的共享,例如数据库连接池、日志服务等。单例模式有多种实现方式,常见的包括懒汉式、饿汉式以及...

Global site tag (gtag.js) - Google Analytics