• 简单工厂、工厂方法和抽象工厂


    将这三种模式放到一起,是为了更好的看出模式的演变及其应用的范围。

    设计模式一开张就来讲对象的创建管理。这也是在程序开发中最实用的模式。

    简单工厂是最简单的一种模式,对使用者来说,它就是通过一个工厂类(也有人叫他万能类或者管理类)来获得一个产品接口的具体实现,而无须估计具体的产品实现细节;因此提供者只要保证工厂类和产品接口这两者不变,就能很好的维护客户或者调用代码的。简单工厂使用的范围是工厂类要相对简单,且变化比较缓慢;其缺点是工厂类无法扩展,不满足OCP原则。这应该是他没有被GOF认为是一种模式的原因吧。

    工厂方法是在简单工厂的基础上变化而来,客户不再直接依赖一个一成不变工厂类,而是一个工厂接口,从而是用户及提供者都可以很方便的扩展工厂接口,而且整个代码结构保持不变,解决了简单工厂不满足OCP的问题。

    抽象工厂是在工厂方法的基础上进一步演化而来。从上面的情况来看,简单工厂和工厂方法都是针对单一产品;如果工厂需要生产多个相互关联的产品(可以理解为同一工厂生产的A系列的产品不能同B系列产品混用),这时候就需要用抽象工厂模式了。抽象工厂模式的使用条件是保持产品结构的相对稳定,即它不能很好应对的增加新产品的变化(原生产产品A和产品B,现在要增加产品B)。

     

  • 相关阅读:
    Asp.net WebAPI Ioc
    Asp.net WebAPi gzip压缩和json格式化
    Asp.net WebApi版本控制
    Asp.net WebAPi Restful 的实现和跨域
    Asp.net WebAPI Request参数验证-请不要重复造轮子
    asp.net mvc源码分析-ModelValidatorProviders 客户端的验证
    MultipleRegularExpressionAttribute MVC中扩展自定义验证规则
    Asp.net5 Session Set扩展
    knockout 多值绑定
    ajax file upload 修改
  • 原文地址:https://www.cnblogs.com/rockythd/p/3446631.html
Copyright © 2020-2023  润新知