美文网首页
设计模式之--工厂模式与抽象工厂模式(创建型模式)

设计模式之--工厂模式与抽象工厂模式(创建型模式)

作者: Timor小先生 | 来源:发表于2018-04-10 21:00 被阅读0次

    工厂模式与抽象工厂模式主要解决接口选择问题。

    一、工厂模式

    当明确计划需要在不同条件下创建不同实例时,可以使用工厂模式。

    实例:发送邮件或者短信

    1、创建发送信息的接口

    发送消息接口

    2、创建两个实现类(发送邮件或者发送短信)

    发送邮件实现类 发送短信实现类

    3、创建发送消息工厂

    发送消息工厂类

    4、测试类

    发送消息测试类

    5、运行结果

    运行结果

    二、抽象工厂模式

    当系统的产品有多于一个的产品族且要集成这些产品族,而系统只消费其中某一族的产品时,可以使用抽象工厂模式,它能保证客户端始终只使用同一个产品族中的对象。

    1、创建发送信息的接口

    发送消息接口

    2、创建两个实现类(发送邮件或者发送短信)

    发送邮件实现类 发送短信实现类

    3、创建工厂接口

    工厂接口

    4、创建两个不同的工厂生产不同的产品

    生产发送邮件实现类实例 生产发送短信实现类实例

    5、测试类

    抽象工厂模式测试类

    6、运行结果

    运行结果

    三、对比

    1、工厂模式:一个工厂类

    抽象工厂模式:多个工厂类

    2、抽象工厂模式好处:拓展性好,上面程序如果想增加一个功能发送qq,只需要新增一个实现类一个工厂类,无需改动现有代码。

    四、对比

    优点

    1)优秀的扩展性。假如披萨不想吃了,想吃芝士蛋糕,只需要增加芝士蛋糕的具体工厂和具体产品类,不会影响其他产品的生产。

    2)大降低代码的耦合度,客户端最终得到的是产品本身,而不需要知道和操作产品的生产过程。

    缺点

    1)增加新产品时,需要增加具体的工厂类和具体的产品类,当产品数量多的时候就会造成系统的复杂度增大,也增加了对系统理解的难度。

    相关文章

      网友评论

          本文标题:设计模式之--工厂模式与抽象工厂模式(创建型模式)

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