zoukankan      html  css  js  c++  java
  • SimpleFactory vs. Factory

    [1] SimpleFactory

    • 简单工厂,倡导面向接口编程,接口提供能力/服务出去。
    • 例子:根据某个输入,判断究竟建立哪个运算类。
    • 可以想象,简单工厂类中有很多if-else语句。
    • 如果要加一个新的运算类,那么还要在简单工厂类中新加一个if-分支,这样不够优雅哦,破坏了类的开放-封闭原则。
    • 对于客户端来说,要做的就是给简单工厂类一个输入,然后就获取了运算类,可以进行计算。

    %XLOR)W%FRU6GW5LOFU630G

    [2] Factory

    • 与[1]对比,一个简单工厂类 —> 一个接口+N类对应的工厂。
    • 这样,增加一个新的运算类,只要新建该运算类相应工厂(实现抽象工厂),没有破坏哪个类。
    • 对于客户端来说,就是新建一个运算类工厂,然后创造出相应的运算,从而进行运算。

    8LVKQZ}I7X)U~OV8Y)76YE7

    [3] SimpleFactory vs. Factory

    简单工厂,最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类。对于客户端来说,去除了与具体产品的依赖。

    工厂,定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。最终,由“客户端”亲自选择工厂。

    N7``70_@LHI97FW4QGN]P)M

    学习自:《大话设计模式》,快乐的入门读物。

  • 相关阅读:
    【转载】Dom篇
    【转载】Eclipse自动编译问题
    RabbitMQ
    分布式消息中间件
    分布式限流算法
    分布式限流和熔断
    数据库中间件
    redis 集群原理
    redis 哨兵模式(读写分离)
    redis 和memcache 区别
  • 原文地址:https://www.cnblogs.com/alipayhutu/p/2520560.html
Copyright © 2011-2022 走看看