版面试教程企业场景篇设计模式.pptx

版面试教程企业场景篇设计模式.pptx

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

设计模式框架中的设计模式项目中的设计模式

面试官怎么问你之前项目中用过设计模式吗?

工厂方法模式策略模式责任链模式简单工厂模式工厂方法模式抽象工厂模式

工厂方法模式

简单工厂模式工厂方法模式抽象工厂模式01

工厂模式需求:设计一个咖啡店点餐系统。设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。具体类的设计如下:1.类图中的符号+:表示public-:表示private#:表示protected2.泛化关系(继承)用带空心三角箭头的实线来表示3.实现关系用带空心的三角箭头的虚线来表示4.依赖关系使用带箭头的虚线来表示/**

*根据类型选择不同的咖啡

*@paramtype

*@return

*/

publicstaticCoffeeorderCoffee(Stringtype){

Coffeecoffee=null;

if(american.equals(type)){

coffee=newAmericanCoffee();

}elseif(latte.equals(type)){

coffee=newLatteCoffee();

}

//添加配料

coffee.addMilk();

coffee.addSuqar();

returncoffee;

}开闭原则:扩展开放,对修改关闭工厂设计模式:解耦

简单工厂模式简单工厂包含如下角色:抽象产品:定义了产品的规范,描述了产品的主要特性和功能。具体产品:实现或者继承抽象产品的子类具体工厂:提供了创建产品的方法,调用者通过该方法来获取产品。

工厂方法模式工厂方法模式的主要角色:抽象工厂(AbstractFactory):提供了创建产品的接口,调用者通过它访问具体工厂的工厂方法来创建产品。具体工厂(ConcreteFactory):主要是实现抽象工厂中的抽象方法,完成具体产品的创建。抽象产品(Product):定义了产品的规范,描述了产品的主要特性和功能。具体产品(ConcreteProduct):实现了抽象产品角色所定义的接口,由具体工厂来创建,它同具体工厂之间一一对应。

工厂方法模式调用关系咖啡店拿铁咖啡工厂美式咖啡工厂拿铁咖啡美式咖啡优点:用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程;在系统增加新的产品时只需要添加具体产品类和对应的具体工厂类,无须对原工厂进行任何修改,满足开闭原则;缺点:每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类,这增加了系统的复杂度。

工厂方法模式调用关系咖啡店拿铁咖啡工厂拿铁咖啡摩卡咖啡工厂摩卡咖啡优点:用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程;在系统增加新的产品时只需要添加具体产品类和对应的具体工厂类,无须对原工厂进行任何修改,满足开闭原则;缺点:每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类,这增加了系统的复杂度。美式咖啡工厂美式咖啡

抽象工厂模式产品族:一个品牌下面的所有产品;例如华为下面的电脑、手机称为华为的产品族;产品等级:多个品牌下面的同种产品;例如华为和小米都有手机电脑为一个产品等级;产品族产品等级小米电脑华为电脑小米手机华为手机工厂方法模式只考虑生产同等级的产品,抽象工厂可以处理多等级产品的生产

抽象工厂模式现咖啡店业务发生改变,不仅要生产咖啡还要生产甜点同一个产品等级(产品分类)同一个风味,就是同一个产品族(相当于同一个品牌)咖啡:拿铁咖啡、美式咖啡甜点:提拉米苏、抹茶慕斯美式风味:美式咖啡、抹茶慕斯意大利风味:拿铁咖啡、提拉米苏抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂

抽象工厂模式调用关系咖啡店产品工厂意大利风味工厂美式风味工厂拿铁咖啡提拉米苏美式咖啡抹茶慕斯优点:当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。缺点:当产品族中需要增加一个新的产品时,所有的工厂类都需要进行修改。

简单工厂工厂方法模式抽象工厂方法模式所有的产品都共有一个工厂,如果新增产品,则需要修改代码,违反开闭原则是一种编程习惯,可以借鉴这种编程思路给每个产品都提供了一个工厂,让工厂专门负责对应的产品的生产,遵循开闭原则项目中用的最多如果有多个纬度的产品需要配合生产时,优先建议采用抽象工厂(工厂的工厂)一般的企业开发中

您可能关注的文档

文档评论(0)

136****1820 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档