单例模式/工厂方法模式/抽象工厂模式

单例模式:

public class Person2 { 

//      饿汉模式
//	private static Person2 person = new Person2();
//	private Person2(){}
//	public static Person2 getInstacne(){
//		return person;
//	}
	
//	静态 内部类-->外部类才能调用
//	静态-->随着类的加载而产生
	private static class PersonHolder{
		private static final Person2 INSTANCE = new Person2();
	}
	private Person2(){}
	public static Person2 getInstance2(){
		return PersonHolder.INSTANCE;
	}
//      懒汉模式
//	private static Person2 person2;
//	private Person2(){}
//	public static synchronized Person2 getInstace(){ 
//		if(person==null){
//			person = new Person2();
//		}
//		return person;
//	}
	
	
}



工厂方法采用的是类继承机制,生成一个子类,重写该工厂方法,在方法内生成一个对象。


抽象工厂采用的是对象组合机制,专门定义”工厂“对象来负责对象的创建

简单用例:

interface icar {
	void docar();
}
class bwm implements icar{
	@Override
	public void docar() {
		System.out.println("bwm");	
	}
}
class bk implements icar{
	@Override
	//工厂方法采用的是类继承机制(生成一个子类,重写该工厂方法,在该方法中生产一个对象)
	public void docar() {
		System.out.println("bk");
	}
}

interface icarFac{
	icar createCar();
}
class bwmFac implements icarFac{
	
	@Override
	//抽象工厂采用的是对象组合机制,专门定义“工厂”对象来负责对象的创建
	public  bwm createCar() {
		return new bwm();
	}
}
class bkFac implements icarFac{
	@Override
	public  bk createCar() {
		return new bk();
	}
}
//抽象工厂针对多个产品等级结果
public class test{
	public static void main(String[] args) {
		
		icarFac mfac = new bwmFac();
		icar m = mfac.createCar();//工厂类负责创建抽象产品的具体子类的实例
		m.docar();
		
		mfac = new bkFac();
		icar k = mfac.createCar();
		k.docar();
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值