工厂模式-核心本质:
◆实例化对象不使用new,用工厂方法代替
◆将选择实现类,创建对象统一管理和控制。 从而将调用者跟我们的实现类解耦。
1.简单工厂模式
对不同类对象的创建进行了一层薄薄的封装。该模式通过向工厂传递类型来指定要创建的对象。
用来生产同一等级结构中的任意产品(对于增加新的产品,需要覆盖已有代码)
其UML类图如下:
汽车生产案例
Car类:汽车标准规范类(AbstractProduct)
public interface Car {
void name();
}
WuLing类:五菱汽车(Product1)
public class WuLing implements Car {
@Override
public void name() {
System.out.println("这是一台五菱宏光");
}
}
DaZhong类:大众汽车(Product2)
public class DaZhong implements Car {
@Override
public void name() {
System.out.println("这是一台大众汽车");
}
}
CarFactory 类:汽车工厂类(Factory)
/**
* 静态(简单)工厂模式
*/
public class CarFactory {
//方法一
public static Car getCar(String carName){
if (carName.equals("五菱")){
return new WuLing();
}else if (carName.equals("大众")){
return new DaZhong();
}else{
return null;
}
}
//方法二
public static Car getWuLing(){
return new WuLing();
}
public static Car getDaZhong(){
return new DaZhong();
}
}
Consume类:(Client)
public class Consume {
public static void main(String[] args){
//使用工厂创建
Car car1 = CarFactory.getCar