java中我们要或得一个对象就要使用new来生产一个对象,想想如果我们要new很多个对象,但是这些对象又有很大的相似性,我们单纯使用new来生成对象的话会有很多对象会成为垃圾对象,所以我们的先辈们帮我们想到了工厂模式。今天首先学习简单工厂模式:
2.AudiCar
让我们的carFactory来生成我们的car了
假如有一个工厂专门生成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生产完成