JAVA设计案例(单例)

设计模式之-单例模式

​ 设计模式是软件工程方法迭代多年的研究成果,java中常用设计模式主要包含23中,包括:单例,观察者,适配器,工厂方法,抽象工厂,代理模式,装饰模式,模板方法等;

​ 其中单例模式是一种开发中非常常见模式,指的是在程序运行中对象的获取永远是同一个,比如说一些资源池(常量池,连接池,线程池)一般都是基于单例模式实现,单例模式的实现原理为:

类中构造器必须使用private修饰
类中必须提供一个用户返回当前对象实例的静态方法
类中存在一个静态的变量,类型为当前类型
java中单例模式又分为两种:

1. 饿汉模式

饿汉模式即在类被初始化时就创建一个实例,后续的返回永远是当前实例对象

public class Singleton {

//饿汉模式(以空间换时间)
private static Singleton instance = new Singleton();

private Singleton(){
	
}

public static Singleton getInstance(){
	return instance;
}

}

饿汉模式是一种以空间换取时间的设计,在类初始化时即创建对象,后续无需在耗时创建。
2.懒汉模式

懒汉模式指的是在类初始化时不创建任何实例,在提供的静态方法中判断对象是否存在,若不存在则创建:

public class Singleton2 {

private static Singleton2 instance = null;

private Singleton2(){
	
}

//懒汉模式(以时间换空间)
public static Singleton2 getInstance(){
	if(instance == null){
		instance = new Singleton2();
	}
	return instance;
}

}

懒汉模式是一种以时间换取空间的设计
设计模式参考书籍

《设计模式之禅》

《设计模式》GOF
final关键字

final表示最终的,终极的;final关键字可以用于修饰类,属性,方法:

被final修饰类不允许被继承(断子绝孙类)
被final修饰变量不予许修改(但是被final修饰的变量必须初始化,也可以在构造器初始化)
被final修饰的方法不允许被重写
//final修饰的类不允许被继承
public final class FinalTest {

//final属性一旦初始化则不可修改
final String msg;
//常量
static final int TYPE = 1;

//可以在构造器中初始化final属性
public FinalTest(){
	msg = "hello";
}

public FinalTest(String msg){
	this.msg = msg;
}
//final方法不允许被重写
public final void m(){
	final int i = 10;
}

}

final关键字在定义变量时通常跟static组合为常量

public class Test{
public static final String STATUS_OFF = “off”;
public static final String STATUS_ON = “on”;

public static final int ORDER_UNSINGE =0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值