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

2018-04-10  本文已影响0人  Timor小先生

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

一、工厂模式

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

实例:发送邮件或者短信

1、创建发送信息的接口

发送消息接口

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

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

3、创建发送消息工厂

发送消息工厂类

4、测试类

发送消息测试类

5、运行结果

运行结果

二、抽象工厂模式

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

1、创建发送信息的接口

发送消息接口

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

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

3、创建工厂接口

工厂接口

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

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

5、测试类

抽象工厂模式测试类

6、运行结果

运行结果

三、对比

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

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

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

四、对比

优点

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

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

缺点

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

上一篇下一篇

猜你喜欢

热点阅读