HeadFirst设计模式
1策略模式
鸭子飞行和嘎嘎叫策略

2工厂模式
简单工厂简单的pizza工厂




Pizza店变成加盟店


- 想要多一些的质量控制,每个pizza店的工艺又不一样,有的先切再烤,有的先烤再切。

- 现在来看看Pizza店的多态。将变化的东西移到低层(实现,子类),抽象的共性移到高层(超类或接口)这边把Pizza的工艺流程移到子类中去



- PizzaStore超类变成,将CreatePizza变成抽象方法,由子类实现方法。


Pizza本身,超类


最终的User调用
对于pizza店和pizza通过工厂模式形成了一个pizza组件,这边对pizza的实现,就不会违反针对接口编程

简单工厂模式

所有的底层都依赖于高层,高层与高层之间相互依赖,相互解耦。


Pizza店再次升级,Pizza原料升级

- Dough(面团)Veggies(蔬菜)Pepperoni(意大利香肠)clam(蛤)子类:

改造Pizza类




抽象工厂模式类图
抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

Pizza店的类图

3命令模式
遥控器,遥控器上有七个槽和14个按钮,通过按钮来控制插入的控制卡
餐厅案例

餐馆点餐就是命令模式



回到遥控器



HeadFirst设计模式
原文:https://www.cnblogs.com/lovexinyi/p/11846149.html