设计模式之工厂模式
简介
工厂模式:工厂模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂模式使一个类的实例化延迟到其子类。 这相当于是把原本会因为业务代码而庞大的简单工厂类,拆分成了一个个的工厂类,这样代码就不会都耦合在同一个类里了。 也就是工厂模式的优点。
工厂模式还分普通工厂模式和抽象工厂模式,这里讲的是抽象工厂模式。
工厂模式两个点是工厂和产品,在面对复杂的产品时需要不同的工厂生产不同产品,为了降低代码数量和提高代码的可扩展性工厂就使用接口抽象出来。
先建立抽象工厂接口
public interface AbstractFactory { Product newProduct();}
还有抽象产品
public interface Product { void show();}
接着就是具体实现类去继承接口
public class ConcreteFactory1 implements AbstractFactory{
public Product newProduct() {
System.out.println("具体工厂1生成-->具体产品1...");
return new ConcreteProduct1();
}
}
public class ConcreteProduct1 implements Product {
public void show() {System.out.println("具体产品1显示...");}
}
在实际使用时就是new一个产品实现类去接收工厂实现类的生产方法。
其优点可扩展性具体如下图,若是新加一条产品线,写新的工厂实现类和产品实现类继承接口即可。