简单工厂模式
也称为静态工厂方法模式,属于类创建型模式。定义一个工厂类,根据参数的不同返回不同类的实例,简单工厂模式专门定义一个工厂类来负责创建具体产品类的实例,被创建的实例通常具有相同的父类。
只需要传一个正确的参数,就能获得需要的对象,无需知道实现过程。
代码实现:
public class simpleFactory{
public static Product createProduct(String type){
if(type.equals("A")){
return new ProductA();
}
else {
return new ProductB();
}
}
public static void main(String[] args){
Product pproduct=simpleFactory.createProduct("A");
}
}
abstract class Product{
public abstract void print();
}
class ProductA extends Product{
@Override
public void print(){
System.out.println("创建的是A")
}
}
class ProductB extends Product{
@Override
public void print(){
System.out.println("创建的是B")
}
}
简单工厂模式优缺点
优点:
- 工厂类包含必要的逻辑判断,可以决定在什么时候创建哪一个类的实例。
- 客户端不需要知道所创建的具体产品的类名,只需知道参数即可。
- 可以在不修改客户端代码的情况下修改增添新的具体产品类。
缺点:
- 集中了所有产品的创建逻辑,一旦异常,整个系统都会被影响
- 会增加系统的复杂度
- 系统扩展困难,在产品类型较多的时候,可能会造成逻辑过于复杂
- 使用了static的工厂方法,会造成工厂属性只能被引用,不能形成多态的局面