java单例模式--工厂模式

单例模式指的是一个类的实例只能有一个,实现方法很简单。首先要把这个类的构造器私有化,防止外部代码去访问他,然后在类的内部构造一个静态初始化函数作为对外的接口。

工厂模式指的是把实例化类的工作(通常是new来做)进一步封装便于后续工程的维护。这一点体现如果我们写了很多类的实例化,每次都调用构造函数,但是如果要修改构造函数,那么我们要每个地方都修改。但是如果用了工厂,那么我们只要修改工厂即可代码之间的耦合不紧。

 

package singleton;

public class singletontest {
	public static void main(String args[])
	{
		//---------
		singleclass t1=singleclass.getinstance();
		singleclass t2=singleclass.getinstance();
		if(t1==t2)
		{
			System.out.println("t1==t2!!");
		}
		t1.say_hello();
		//---------
		car c1=carfactory.creatCar();
	}
}
//single instance model
class singleclass{
	
	private static singleclass instance;
	private singleclass(){//构造器私有化,外部不能调用
		
	}
	public void say_hello() {
		System.out.println("hello!!");
	}
	public static singleclass getinstance()
	{
		if(instance==null)
		{
			instance=new singleclass();
		}
		return instance;
	}
	
}
//factory model
class car{
	public car(){
		System.out.println("get a new car!!");
	}
}
class carfactory{
	
	public static car creatCar() {
		return new car();
	}
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值