工厂模式
1.定义一个创建产品的接口,由子类决定生产什么产品。(实现了创建者和调用者的分离)
核心:实例化对象不使用new,用工厂方法代替
2.分类
(1)简单工厂模式(以车工厂为例)
新建一个Car接口
public interface Car {
public void name();
}
新建Car的实现类:
public class DaZhong implements Car {
@Override
public void name() {
System.out.println("大众");
}
}
public class WuLing implements Car {
@Override
public void name() {
System.out.println("五菱");
}
}
测试:
public class Test {
public static void main(String[] args) {
Car car = CarFactory.getCar("大众");
Car car2 = CarFactory.getCar("五菱");
car.name();
car2.name();
}
}
(2)工厂方法模式(以车工厂为例)
新建一个车接口,大众接车口,五菱车接口
public interface Car {
public void name();
}
public class DaZhong implements Car {
@Override
public void name() {
System.out.println("大众");
}
}
public class WuLing implements Car {
@Override
public void name() {
System.out.println("五菱");
}
}
新建一个车工程,大众车工程,五菱车工程
public interface CarFactory {
public Car getCar();
}
public class DaZhongFactory implements CarFactory {
@Override
public Car getCar() {
return new DaZhong();
}
}
public class WuLingFactory implements CarFactory {
@Override
public Car getCar() {
return new WuLing();
}
}
测试:
public class Test {
public static void main(String[] args) {
new DaZhongFactory().getCar().name();
new WuLingFactory().getCar().name();
}
}