设计模式学习之简单工厂模式(java)

java中我们要或得一个对象就要使用new来生产一个对象,想想如果我们要new很多个对象,但是这些对象又有很大的相似性,我们单纯使用new来生成对象的话会有很多对象会成为垃圾对象,所以我们的先辈们帮我们想到了工厂模式。今天首先学习简单工厂模式:

假如有一个工厂专门生成car,我们叫他carFactory ,而我们有两种车型分别是BMW 和AUDI,我们叫他BMWCar和AudiCar,但是我们发现Car有着很高的相似性,那我们就用java的接口抽象出一个Car

public interface Car {
    //一辆车可以运行
	public void run();
	
}
所有的车类都要实现这个接口

1.BMWCar

public class BMWCar implements Car{

	public void run() {
           System.out.println("开着bmw飞奔而去!!!");		
	}

}

2.AudiCar 

public class AudiCar implements Car{

	public void run() {
          System.out.println("开着audi飞奔而去");		
	}

}
现在我们要定义一个简单工厂来生成car ,我们叫他simpleFactory

public class SimpleFactory {
	
	public  Car createCar(String carType){
		Car car = null;
		if(carType=="BMW"){
			car = new  BMWCar();
		}else if(carType=="Audi"){
			car = new AudiCar();
		}
		return car;
	}

}

让我们的carFactory来生成我们的car了

public class CarFactory {
	private Car car;
	SimpleFactory simpleFactory;
	
    public CarFactory(SimpleFactory simpleFactory){
    	this.simpleFactory = simpleFactory;
    }
	
	public Car createCar(String carType){
	  Car car = null;
      car = this.simpleFactory.createCar(carType);	  
	  return car;
	}

}
现在要让我们的car跑起来了

public class Main {
   public static void main(String[] args){
	   	System.out.println("我要一辆bmw....");
	   	SimpleFactory simple = new SimpleFactory();
	   	CarFactory carFactory = new CarFactory(simple);
	   	carFactory.createCar("BMW").run();
	   	System.out.println("BMW生产完成");
	   	System.out.println("我要一辆Audi....");
	   	carFactory.createCar("Audi").run();
	   	System.out.println("Audi生产完成");
	   	
   }
}

简单工厂模式就是这样的。来看看我们的车出来了

我要一辆bmw....
开着bmw飞奔而去!!!
BMW生产完成
我要一辆Audi....
开着audi飞奔而去
Audi生产完成



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值