工厂模式

Java设计模式三—— 策略模式、工厂模式插图

简单工厂模式

Java设计模式三—— 策略模式、工厂模式插图(1)
抽象产品接口
Java设计模式三—— 策略模式、工厂模式插图(2)

具体产品接口

Java设计模式三—— 策略模式、工厂模式插图(3)
Java设计模式三—— 策略模式、工厂模式插图(4)
具体工厂类

Java设计模式三—— 策略模式、工厂模式插图(5)

Java设计模式三—— 策略模式、工厂模式插图(6)
虽然解除了CoffeStore和Coffee的耦合,但是存在以下耦合
Java设计模式三—— 策略模式、工厂模式插图(7)

工厂方法模式

Java设计模式三—— 策略模式、工厂模式插图(8)

抽象工厂
Java设计模式三—— 策略模式、工厂模式插图(9)

具体工厂

Java设计模式三—— 策略模式、工厂模式插图(10)
Java设计模式三—— 策略模式、工厂模式插图(11)

传入不同的工厂,创建不同的产品。
Java设计模式三—— 策略模式、工厂模式插图(12)

优缺点

Java设计模式三—— 策略模式、工厂模式插图(13)

抽象工厂模式

Java设计模式三—— 策略模式、工厂模式插图(14)
Java设计模式三—— 策略模式、工厂模式插图(15)

Java设计模式三—— 策略模式、工厂模式插图(16)

策略模式

Java设计模式三—— 策略模式、工厂模式插图(17)

Java设计模式三—— 策略模式、工厂模式插图(18)

优点

  • 策略之间可以自由切换
  • 易于扩展
  • 避免使用多重条件语句,充分体现面向对象思想。

缺点

  • 客户端必须直到所有的策略类,并自行决定使用哪一个策略类
  • 策略模式将造成产生很多策略类

抽象策略类

Java设计模式三—— 策略模式、工厂模式插图(19)

具体策略类

Java设计模式三—— 策略模式、工厂模式插图(20)
Java设计模式三—— 策略模式、工厂模式插图(21)

环境类
Java设计模式三—— 策略模式、工厂模式插图(22)

本站无任何商业行为
个人在线分享 » Java设计模式三—— 策略模式、工厂模式
E-->