工厂模式
工厂模式:定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其他类。
1.普通方式
1.1.先创建一个车的接口
package factory.simple;
public interface Car {
void name();
}
1.2.实现车的接口,创建几个实体车
1.2.1.五菱
package factory.simple;
public class WuLing implements Car {
@Override
public void name() {
System.out.println("五菱宏光");
}
}
1.2.2.特斯拉
package factory.simple;
public class Tesla implements Car {
@Override
public void name() {
System.out.println("特斯拉!");
}
}
1.3.创建一个消费者买车
package factory.simple;
public class Consumer {
public static void main(String[] args) {
//1.接口,所有的实现类!工厂
Car car=new WuLing();
Car car1=new Tesla();
car.name();
car1.name();
}
}
2.简单工厂模式
2.1.创建一个carfactory
package factory.simple;
//静态工厂模式
//违背了开闭原则
public class CarFactory {
public static Car getCar(String car){
if(car.equals("五菱")){
return new WuLing();
}else if(car.equals("特斯拉")){
return new Tesla();
}else{
return null;
}
}
}
2.2.使用车工厂创建不同类型的车
package factory.simple;
public class Consumer {
public static void main(String[] args) {
//2.车工厂
Car car=CarFactory.getCar("五菱");
Car car2=CarFactory.getCar("特斯拉");
car.name();
car2.name();
}
}
下图是简单工厂模式分析图: