《实验》3种设计模式详细代码附带注释!!!!

饿汉式

package com.huzheng.homework;

public class Homework03ehan {

	public static void main(String[] args) {
		
		//调用ehan的方法将返回的对象地址赋值给e1,e2
		ehan e1 = ehan.show();
		ehan e2 = ehan.show();
		
		System.out.println(e1 == e2);
	}
}

class ehan{
	//构造方法私有化,限制外界访问
	private ehan(){};
	
	//在类中创建对象,让对象随着类的加载而创建
	private static ehan e = new ehan();
	
	//定义一个static方法,给外界返回创建好的对象e
	public static ehan show() {
		return e;
	}
}

懒汉式:

package com.huzheng.homework;

public class Homework04lanhan {

	public static void main(String[] args) {
		//调用方法创建对象
		lanhan l1 = lanhan.show();
		lanhan l2 = lanhan.show();
		
		System.out.println(l1 == l2);
	}
}

class lanhan{
	//构造方法私有化,防止外界访问
	private lanhan(){}
	
	//在类中创建对象
	private static lanhan l = new lanhan();
	
	//提供public 让外界访问
	public static lanhan show() {
		//3.先判断进程是否为空,防止每次都来获取同步锁对象,提高效率
		if(l == null) {
			//2。存在2个线程都为空同时进来,多线程环境下,无法保证1的线程安全,所以加入同步代码保证线程安全
			synchronized (lanhan.class) {
				
				//1.判断当前对象是否存在,存在就不创建,不存在就创建
				if(l == null) {
					l = new lanhan();
				}
			}
		}
		return l;
	}
}

老汉式

package com.huzheng.homework;

public class Homework05laohan {
	public static void main(String[] args) {
		//调用类.对象来赋值
		laohan l1 = laohan.l;
		laohan l2 = laohan.l;
		
		System.out.println(l1 == l2);
	}
}

class laohan{
	//创建方法私有化
	private laohan() {}
	
	//提前创建好类的对象并且公开且不许修改
	public static final laohan l = new laohan();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿福真的不想掉头发

大爷?赏点?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值