简单工厂
Introduction
简单工厂模式是一种创建型设计模式,它由一个工厂对象决定创建出哪一种产品类的实例。在简单工厂模式中,客户端不需要知道要创建的具体产品类,只需要知道产品类所对应的参数即可。 简单工厂模式是工厂模式家族中最简单实用的模式,它可以帮助我们封装创建对象的过程,从而使得客户端与具体实现解耦,同时也提高了代码的复用性和可维护性。
实现方式
实现方式大致如下:
public class OperationFactory
{
public static Operation CreateOperation(string operate)
{
Operation operation = null;
switch (operate)
{
case "+":
operation = new OperationAdd();
break;
case "-":
operation = new OpertaionSub();
break;
case "*":
operation = new OperationMul();
break;
case "/":
operation = new OperationDiv();
break;
}
return operation;
}
}
简单工厂模式的优缺点
优点:
- 封装了对象的创建过程,客户端只需要知道产品类的参数即可,无需关心创建对象的细节;
- 降低了客户端与具体实现的耦合度,使得客户端可以更加灵活地使用产品;
- 提高了代码的复用性和可维护性,因为客户端与具体实现解耦,所以修改具体实现不会对客户端产生影响。
缺点:
每次需要新增类型的时候必须修改工厂内部代码,不符合开闭原则;
工厂类通常包含了多个产品的创建逻辑,因此代码会比较臃肿,不容易维护。
应用场景
当需要创建的对象较少且对象的创建逻辑不复杂时,将对象的创建逻辑封装在一个工厂类中,使得客户端可以通过简单的调用工厂类的方法来获取所需的对象。
当客户端不需要知道具体的对象实现类时,客户端只需要知道工厂类的接口或抽象类即可,不需要关心具体的实现类。
当需要对创建的对象进行统一管理时,将对象的创建逻辑封装在一个工厂类中,方便对对象的管理和维护。
当需要通过参数来指定创建哪种对象时,客户端只需要传递相应的参数给工厂类即可获取所需的对象。