设计模式-工厂

工厂模式与单例模式都是创建型模式

工厂模式分为:简单工厂模式,工厂方法模式和抽象工厂模式

假设我有一个小工厂制作汽车,客户说做什么我就做什么。

简单工厂
step1: 将汽车的公有方法抽出

public interface ICar{
	void 启动();

}

step2:制作的汽车品牌

    public class qiruiQQ implements ICar{
    		public void 启动(){
				System.out.println("启动汽车");
			}
    }
   public class bydF0 implements ICar{
    		public void 启动(){
				System.out.println("启动汽车");
			}
    }

step3:我的简单工厂 ,客户给我什么我就创建什么

public class CarFactory{
	public ICar create(Class<? extends ICar> class){
		 try{
		 	 if(class != null){
					return class.newInstance();
		 	 }
		 }catch(Exception e){
		 e.printStackTrace();
		 }
	}
}

这就是简单工厂。根据客户传入状态类型 判断 去 new哪种对象 。

我的小工厂发展的不错,要规模化标准化。两个品牌也越加复杂了。
每个小汽车品牌要成立自己的生产线

public interface ICarFactory{
	定义生产线标准 ICar create();
}
public class qiruiQQFactoty implements ICarFactory{
	public ICar create(){
		创建我自己的汽车 return new qiruiQQ();
	}
}
public class bydF0Factory implements ICarFactory{
	public ICar create(){
		创建我自己的汽车 return new bydF0();
	}
}

上述就是工厂方法

随着汽车行业不断的发展,要求更加细致,更加专业,我要将轮胎,发动机成立单独生产线.

汽车零部件也要专业化生产

public interface 轮胎{
	void create();    
}
 public interface 发动机
	void create();    
}
public interface ICarFactory
	轮胎  create();
	发动机 create();   
}
public  qiruiQQ轮胎 implements 轮胎{
	public void create(){
		 创建qieruiQQ的专属轮胎
	}
}
public  qiruiQQ发动机 implements 发动机{
	public void create(){
		 创建qieruiQQ的专属发动机
	}
}
public  bydF0轮胎 implements 轮胎{
	public void create(){
		 创建bydF0的专属轮胎
	}
}
public  bydF0发动机 implements 发动机{
	public void create(){
		 创建bydF0的专属发动机
	}
}
//qiruiQQ 生产工厂
public class qiruiQQFactory implements  ICarFactory{
	public 轮胎  create(){
		 return new qirui轮胎();
	}
	public 发动机 create(){
		return new qirui发动机();
	}
}
//bydF0 生产工厂
public class  bydF0Factory implements  ICarFactory{
	public 轮胎  create(){
		 return new bydF0轮胎();
	}
	public 发动机 create(){
		return new bydF0发动机();
	}
}

上述为抽象工厂模式。(即将公有的全部抽取出来,将可独立的也抽取出来,最终在一个大厂内 整合 )

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值