🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 工厂设计模式 工厂模式是一种常用的设计模式,通常在以下情况下使用: 1. **对象的创建需要根据不同的条件进行变化**:工厂模式可以根据不同的条件或参数来创建不同的对象,这样可以实现更灵活的对象创建。 2. **隐藏对象创建的细节**:通过工厂模式,客户端代码不需要知道对象的创建细节,只需要通过工厂方法或工厂类来获取所需的对象,从而降低了耦合度。 3. **对象的创建逻辑可能发生变化**:如果对象的创建逻辑可能发生变化,例如需要根据用户输入来动态选择创建哪种对象,使用工厂模式可以更方便地进行管理和调整。 4. **对象的创建涉及复杂逻辑或依赖其他对象**:当对象的创建过程涉及到复杂的逻辑或需要依赖其他对象时,使用工厂模式可以将这些逻辑封装在工厂中,让客户端代码更简洁。 总的来说,工厂模式适用于需要根据不同条件创建对象、需要隐藏对象创建细节、对象创建逻辑可能变化、或者创建过程涉及复杂逻辑的情况。 ### 提供了一种创建对象的最佳方式,我们在创建对象的时候不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 ### 比如业务开发中,支付很常见,里面有统一下单和支付接口,具体的支付实现可以是微信、支付宝、银行卡等,我们就可以利用工厂模式来实现不同形式的微信支付方式。 ### ## 工厂模式的三种不同实现方式 ### **简单工厂模式**:通过传入相关的类型来返回相应的类,这种方式比较单一,可扩展性相对较差; **工厂方法模式**:通过实现类实现相应的方法来决定相应的返回结果,这种方式的可扩展性比较强; **抽象工厂模式**:基于上述两种模式的扩展,且支持细化产品。 ### ## 应用场景 ### 解耦:分离职责,把复杂对象的创建和使用的过程分开 复用代码,降低维护成本: 如果对象创建复杂且多出需要使用,如果每处都进行编写,则很多重复代码,如果业务逻辑发生了改变,则需要四处修改; 使用工厂模式统一创建,则只要修改工厂类即可,降低成本。 ###