V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
anguea
V2EX  ›  问与答

关于工厂模式和策略模式的区别?猿友们指点下迷津

  •  1
     
  •   anguea · May 26, 2017 · 2050 views
    This topic created in 3262 days ago, the information mentioned may be changed or developed.
    WuMingyu
        1
    WuMingyu  
       May 26, 2017 via iPhone
    工厂模式是生成对象的吧,策略模式是针对某个功能有不同的实现策略吧
    zhanglp888
        2
    zhanglp888  
       May 26, 2017
    工厂模式就是在创建对象时不会对暴露创建逻辑,就好像,你买个汽车,直接交钱买就行了,不用去管,这个车在工厂里是如何组装起来的
    zhanglp888
        3
    zhanglp888  
       May 26, 2017
    工厂模式就是在创建对象时,不会暴露创建逻辑。
    就好像,你去买汽车,直接交钱买就行了,不用去管,这个车在工厂里是如何组装起来的
    korewayume
        4
    korewayume  
       May 26, 2017
    一个是创建型模式,一个是行为型模式
    korewayume
        5
    korewayume  
       May 26, 2017
    工厂模式:
    Factory:
    if type=="a":
    return new A
    if type=="b":
    return new B

    obj = new Factory(type)

    结果是 obj is A 或者 obj is B

    策略模式:
    Strategy:
    if type=="a":
    this.attribute = new A
    return this
    if type=="b":
    this.attribute = new B
    return this

    obj = new Strategy(type)

    结果是 obj has A() 或者 obj has B()
    zhanglp888
        6
    zhanglp888  
       May 26, 2017
    策略模式是为了解决的是策略的切换与扩展
    如果工厂是黑盒的话,策略模式就是白盒,
    买车的时候,你来选配置,然后把车开回家
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2706 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 14:31 · PVG 22:31 · LAX 07:31 · JFK 10:31
    ♥ Do have faith in what you're doing.