Java设计模式-1

Java程序设计模式

一.什么是设计模式?
 * 	  设计模式是软件开发过程中,能够增加系统的健壮性、可扩展性、可维护性的一种模式或者一种软件设计思想。
 * 	  设计模式不是框架。框架大于设计模式
二.常见设计模式?
 * 	 1.单例模式:一个类只允许创建一个实例化对象。   (面试考点)
 * 		-- 分类:饿汉式和懒汉式
 * 		①.饿汉式:构造方法私有化,无法直接创建实例化对象,只能通过static方法取得实例化对象
 * 		②.懒汉式:当第一次访问的时候才会为其产生实例化对象操作。
 * 				当多个线程并发执行getInstance方法的时候,懒汉式会存在线程安全的问题,是线程不安全的
 * 				需要使用synchronized来实现线程的同步,当一个线程获取锁的时候其他线程只能在外等待其执行完毕
 * 	2.饿汉式和懒汉式的区别:
 * 		①.饿汉式是线程安全的,懒汉式是线程不安全的。
 * 		②.饿汉式是空间换时间,当类装载的时候就会创建实例,每次调用的时候无需再做判断节省了时间
 * 		    懒汉式是时间换空间,体现了缓存的思想,刚开始不加载资源,等使用的时候才会加载
 * 
 * 	3.单例模式的使用场景
 * 		①.充当共享数据:例如Web页面计数器
 * 		②.防止创建多个对象过度消耗资源:多次访问IO或者数据库等资源

懒汉式

public class Singleton1 {
	// 声明私有的成员变量
	private static Singleton1 instance = null;
	
	/**
	 * 私有的构造器
	 */
	private Singleton1() {
		
	}
	
	/**
	 * 
	 * 方法描述:创建实例对象
	 * @return
	 */
	public static Singleton1 getInstance() {
		if (instance == null) {
			synchronized (Singleton1.class) {
				if (instance == null) {
					instance = new Singleton1();
				}
			}
		}
		return instance;
	}
}

饿汉式

public class Singleton {
	
	// 创建私有的实例化对象,在类的内部可以访问私有属性
	private static Singleton instance = new Singleton();
	/**
	 * 私有的构造器
	 */
	private Singleton() {
		
	}
	
	/**
	 * 
	 * 方法描述:获取实例化对象
	 * @return
	 */
	public static Singleton getInstance() {
		return instance;
	}
	
	
}
发布了30 篇原创文章 · 获赞 0 · 访问量 1935

猜你喜欢

转载自blog.csdn.net/qq_38499019/article/details/104758284
今日推荐