设计模式(十八)之行为型模式-状态模式 发表于 2021-08-14 | 阅读次数: 字数统计: 1.7k | 阅读时长 ≈ 7 一、状态模式1、案例1.1 APP抽奖活动问题 编写程序完成APP抽奖活动,具体要求如下: (1)加入每参加一次这个活动要扣除用户50积分,中奖概率是10% (2)奖品数量固定,抽完就不能抽奖 (3)活动有4个状态:可以抽奖、不能抽奖、发放奖品和奖品领完 2、状态模式基本介绍2.1 基本介绍 (1 ... 阅读全文 »
设计模式(十七)之行为型模式-解释器模式 发表于 2021-08-10 | 阅读次数: 字数统计: 2k | 阅读时长 ≈ 8 一、解释器模式1、案例1.1 四则运算问题 通过解释器模式来实现四则运算,如计算a+b-c的值,看具体要求 (1)先输入表达式的形式,比如a+b+c-d+e,要求表达式的字母不能重复 (2)再分别输入a,b,c,d,e的值 (3)最后求出结果:类似下图 1.2 传统方案 (1)编写一个方法,接收 ... 阅读全文 »
设计模式(十六)之行为型-备忘录模式 发表于 2021-08-09 | 阅读次数: 字数统计: 1.6k | 阅读时长 ≈ 6 一、备忘录模式1、案例需求1.1 游戏角色状态恢复问题 游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大战Boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状态。 1.2 传统方案类图 1.3 传统方案问题分析 一个对象,就对应一个保存对象状态的对象,这样当 ... 阅读全文 »
设计模式(十五)之行为型模式-中介者模式 发表于 2021-08-08 | 阅读次数: 字数统计: 1.7k | 阅读时长 ≈ 7 一、中介者模式1、案例讲解1.1 智能家庭项目 智能家庭包括各种设备,闹钟,咖啡机,电视机,窗帘等 主人要看电视时,各个设备可以协同工作,自动完成看电视的准备工作,比如流程为: 闹铃响起->咖啡机开始做咖啡->窗帘自动落下->电视机开始播放 1.2 传统方法类图 ... 阅读全文 »
设计模式(十四)之行为型模式-观察者模式 发表于 2021-08-07 | 阅读次数: 字数统计: 2.1k | 阅读时长 ≈ 9 一、观察者模式1、 案例1.1 天气预报项目需求 气象站可以将每天测量到的温度,湿度,气压等等以公告的形式发布出去(比如发布到自己的网站或第三方)。 需要设计开放型API,便于其他第三方也能接入气象站获取数据 提供温度、气压和湿度的接口 测量数据更新时,要能实时的通知给第三方 1.2 普通方案 ... 阅读全文 »
设计模式(十三)之行为型模式-迭代器模式 发表于 2021-08-03 | 阅读次数: 字数统计: 2.1k | 阅读时长 ≈ 9 一、迭代器模式1、案例分析 学校院系展示需求: 编写程序展示一个学校院系结构:需求如下:要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。如下图: 1.1.1 传统方案 传统方案:学校由学院组成,学院由系组成 1.1.2 传统方案存在问题 将学院看 ... 阅读全文 »
设计模式(十二)之行为型模式--访问者模式 发表于 2021-08-01 | 阅读次数: 字数统计: 1.5k | 阅读时长 ≈ 6 一、访问者模式1、案例分析1.1 测评系统的需求 将观众分为男人和女人,对歌手进行测评,当看完某个歌手表演后,得到他们对该歌手不同的评价(评价有不同的种类,比如:成功、失败等) 1.2 传统方案 1.3 传统方式问题分析 (1)如果系统比较小,还是ok的,但是考虑系统增加越来越多的新功能时,对代码 ... 阅读全文 »
设计模式(十一)之行为型模式--命令模式 发表于 2021-07-27 | 阅读次数: 字数统计: 3k | 阅读时长 ≈ 13 一、命令模式1、案例分析1.1 智能生活项目需求 (1)买一套智能家电,有照明灯、风扇、冰箱、洗衣机,我们只要在手机上安装app就可以控制这些家电工作 (2)这些智能家电来自不同的厂家,我们不像针对每一种家电都安装一个app,分别控制,只希望有一个app就可以控制全部智能家电 (3)要实现一个app ... 阅读全文 »
设计模式(十)之行为型模式--模板方法模式 发表于 2021-07-22 | 阅读次数: 字数统计: 1.9k | 阅读时长 ≈ 7 一、行为型模式 模板方法模式 命令模式 迭代器模式 观察者模式 中介者模式 备忘录模式 解释器模式 状态模式 策略模式 职责链模式 访问者模式 二、模板方法模式2.1 案例分析2.1.1 豆浆制作问题 编写制作豆浆的程序,说明如下: 制作豆浆的流程:选材—>添加配料—>浸泡—&g ... 阅读全文 »
设计模式(九)之结构型模式-享元模式 发表于 2021-07-19 | 阅读次数: 字数统计: 2.7k | 阅读时长 ≈ 11 一、享元模式1、案例分析1.1 展示网站项目需求 小型的外包项目,给客户A做一个产品展示网站,客户A的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求有些不同: 有客户要求以新闻的形式发布 有客户要求以博客的形式发布 有客户希望以微信公众号的形式发布 1.2 传统方案解决网站展现项目 ... 阅读全文 »