码迷,mamicode.com
首页 > 其他好文 > 详细

HeadFirst设计模式

时间:2019-11-13 00:57:40      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:餐馆   指定   策略   类的方法   案例   code   质量   red   creat   

HeadFirst设计模式

1策略模式

鸭子飞行和嘎嘎叫策略

技术图片

2工厂模式

简单工厂简单的pizza工厂

  • 通过一个工厂类的方法,创建和返回对象实例

技术图片

  • 原来混乱的代码:

技术图片

  • 修改后

技术图片

  • 简单工厂类图

技术图片

Pizza店变成加盟店

技术图片

  • 在创建Pizza时将工厂传进去

技术图片

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

技术图片

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

技术图片

技术图片

技术图片

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

技术图片

  • 工厂模式的工厂方法

技术图片

Pizza本身,超类

技术图片

  • Pizza的多态

技术图片

最终的User调用

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

技术图片

简单工厂模式

  • 创建者和产品

技术图片

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

技术图片

  • 工厂UML

技术图片

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

  • Ingredient(成分)超类:

技术图片

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

技术图片

改造Pizza类

  • 抽象方法prepare()

技术图片

  • cheesepizza

技术图片

  • 靠近一点工厂

技术图片

  • 商店如何使用工厂

技术图片

抽象工厂模式类图

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

技术图片

Pizza店的类图

技术图片

3命令模式

遥控器,遥控器上有七个槽和14个按钮,通过按钮来控制插入的控制卡

餐厅案例

技术图片

餐馆点餐就是命令模式

技术图片

技术图片

技术图片

回到遥控器

技术图片

技术图片

技术图片

HeadFirst设计模式

标签:餐馆   指定   策略   类的方法   案例   code   质量   red   creat   

原文地址:https://www.cnblogs.com/lovexinyi/p/11846149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!