简单工厂模式
简单工厂模式(又叫作静态工厂方法模式), 其属于创建型设计模式,但并不属于23种Gof设计模式之一.
定义: 简单工厂模式属于创建型设计模式,又叫作静态工厂方法模式,这是由一个工厂对象决定创建出哪一种产品类的实例.
使用场景:
- 工厂类负责创建的对象比较少.
- 客户只需知道传入工厂类的参数,而无需关心创建对象的逻辑.
优点: 使用户根据参数获得对应的类实例,避免了直接实例化,降低了耦合性.
缺点:可实例化的类型在编译期间已经被确定.如果增加新的类型,则需要修改工厂,这违背了开闭原则.简单工厂需要知道多有要生成的类型.当子类过多或者子类层次过多时不适合使用.
下面演示一个例子:
创建一个抽象产品类
public abstract class Computer {
/**
* 产品的抽象方法,由具体的产品类实现
* */
public abstract void start();
}
具体产品实现类
public class LenovoComputer extends Computer {
@Override
public void start() {
System.out.println("联想计算机启动");
}
}
public class HpComputer extends Computer {
@Override
public void start() {
System.out.println("惠普计算机启动");
}
}
...
工厂类
public class ComputerFactory {
public static Computer createComputer(String type){
Computer computer = null;
switch (type){
case "lenovo":
computer = new LenovoComputer();
break;
case "hp":
computer = new HpComputer();
break;
}
return computer;
}
}
客户调用工厂类
public static void main(String[] args) {
// write your code here
ComputerFactory.createComputer("lenovo").start();
}
这就是简单工厂模式