业务场景
如果你直接面向一个类来编程,new来创建类的实例的话
我们如果对Product,要更换一个类,换一个类的实现
此时就必须在创建这个类实例的地方,都要修改一下这个代码
如果你有100个地方,都创建了Product这个类的实例
你需要在100个地方都去修改这个new Product()的这段代码
代码可维护性和可扩展性之差,惨不忍睹
/**
* 简单工厂模式
*/
public class FactoryPatternDemo {
public static void main(String[] args) {
Product product = ProductFactory.create();
product.execute();
/**
* 如果此时有100个地方都需要获取Product的实例
* 但是此时Product实现类改了
* 我们只要修改一个地方即可,就是ProductFacory中
*/
}
public interface Product {
void execute();
}
public static class ProductImpl1 implements Product {
@Override
public void execute() {
System.out.print("产品1的功能实现");
}
}
public static class ProductFactory {
public static Product create() {
return new ProductImpl1();
}
}
}