美文网首页
工厂模式

工厂模式

作者: jugg_can | 来源:发表于2020-09-02 10:56 被阅读0次

    工厂模式 :有工厂方法和抽象工厂两种常见的模式,属于创建类设计模式。用于封装对象创建的过程,我们不用知道对象是如果创建的,这样具有很好的扩展性和解耦效果。

    工厂方法模式

    u=2485914114,2549089854&fm=26&gp=0.jpg
    类图比较简单 代码就没写了 大概过程是
    首页有个 product产品类(接口或者是抽象类)  然后产品类的实现类 ConcreteProduct
    有个工厂类的Creator 实现类ConcreteCreator
    而在ConcreteCreator里就实现了factoryMethod方法  在这个方法里创建产品的实现类
    假如产品的实现类有很多 就可以给factoryMethod加一个入参来区分需要创建哪一个产品实现类
    
    
    但其实我们在开放中基本不会这么写   而是直接创建一个工厂类 用static静态方法去直接创建产品类
    

    工厂方法之前创建的是 product1(汽车) 但突然需求增加了 product2(房子),而我们最简单的做法是 直接在工厂类里加一个创建product2的方法或者修改Creator类 但这种方式是不符合设计模式的。。为了解决这种多产品类的情况就参数了抽象工厂

    抽象工厂方法

    timg (1).jpg
    抽象工厂的核心是,把不同产品类的product抽离出公共的方法,创建一个抽象的产品类和一个抽象的工厂类,
    当product种类增加时 也相应的增加 对象的AbstractFactory实现类 AbstractProduct实现类
    
    比如说现在加了一个product2
    那就创建
    AbstractFactory2实现类 AbstractProduct2实现类
    

    为了应对改变不断增加实现类,只是为了不改变原有的结构和原有的接口(抽象类)

    相关文章

      网友评论

          本文标题:工厂模式

          本文链接:https://www.haomeiwen.com/subject/smuisktx.html