240 发简信
IP属地:上海
  • 120
    职责链模式

    1 采购审批项目需求 采购员采购教学器材,如果采购金额小于等于5000元由系主任审批,采购金额在5000~10000元由院长审批,采购金额大于10000元由校长审批。传统方法...

  • 120
    策略模式

    1 鸭子问题 现在有种类繁多的鸭子(如野鸭、北京鸭、玩具鸭等),鸭子有各种行为,如叫、游泳等,现在要求显示鸭子的信息。传统方案是通过设计一个Duck父类,在Duck中定义了鸭...

  • 120
    状态模式

    1 抽奖需求 现在有一个抽奖的需求,每参加一次这个活动要扣除50积分,中奖概率是50%,奖品数量固定,发完就不能抽奖了。抽奖活动有四个状态:可以抽奖、不能抽奖、发放奖品、奖品...

  • 120
    解释器模式

    1 四则运算问题 现在有一个四则运算问题需要用代码实现:计算形如a+b-c的值,其中表达式的字母不能为空,并且每个字母都有数字与它对应,最后求出结果。传统的方法是写一个方法,...

  • 120
    备忘录模式

    1 游戏角色状态恢复问题 游戏角色有攻击力和防御力,在战斗前有一组值,战斗后攻击力和防御力都会下降,现在需要在战斗结束后恢复到战斗前的攻击力和防御力。我们可以用备忘录模式来解...

  • 120
    中介者模式

    1 租房需求 我们以日常生活中的租房子为例,通常租房子是直接联系房东看房,如果满意就签合同,如果不满意就需要我们自己再去联系其他房东。比如,我们现在想租一个双人间,联系了房东...

  • 120
    观察者模式

    1 天气预报需求 气象站可以实时测量当前的温度、湿度等数据并以公告的形式发布出去。现在需要设计一个开放型API接口便于第三个接入并获取到气象站的数据,要求提供温度、湿度的接口...

  • 120
    迭代器模式

    1 输出院系结构的需求 在之前将的组合模式中提到了打印院系结构的需求,当时是采用组合模式实现的,现在我们用迭代器模式来实现一下。 2 迭代器模式介绍 迭代器模式(Iterat...

  • 120
    访问者模式

    1 测评系统需求 某餐厅推出了一款饮料,想让品尝着对其评价成功或失败。品尝着可以是男人、女人,评价可以是成功或失败。传统方案是写一个Person类,然后让Man和Woman类...

  • 120
    命令模式

    1 智能生活项目的需求 现在我们有一套智能家电,包括电灯、电风扇、冰箱、电视机等,我们希望只要在手机上安装一个App就能控制这些智能家电工作。但是这些智能家电来自不同的厂商,...

  • 120
    模板方法模式

    1 基本介绍 模板方法模式(Template Method Pattern)又叫做模板模式(Template Pattern)、模板方法模式在一个抽象类中公开定义了执行它的方...

  • 120
    代理模式

    1 什么是代理模式 所谓代理模式就是为一个对象提供一个替身以控制这个对象的访问,即通过代理对象访问目标对象。这样做的好处是可以在目标对象实现的基础上增强额外的功能操作,即扩展...

  • 120
    享元模式

    1 展示网站的项目需求 我们给客户做了一个产品展示的网站,客户的朋友觉得效果不错,也希望我们帮他做一个这样的网站,但是要求有些不同,希望网站以新闻的形式发布,但是有些朋友希望...

  • 120
    外观模式

    1 问题提出 现在我们要组建一个家庭影院,家庭影院包括:媒体播放器、投影仪、灯光、升降式屏幕、环绕立体声、爆米花机。每个设备都有遥控器可以控制打开和关闭,我们应该如何实现才能...

  • 120
    组合模式

    1 需求提出 现在有这样一个需求:在一个页面中要展示出学校的院系组成,一个学校有多个学院,一个学院又有多个系。传统方案是将学校作为父类,学院继承学校,系继承学院来实现这个需求...

  • 120
    装饰者模式

    1 场景举例 现在有一个咖啡厅,里面有咖啡种类(如:意式咖啡、美式咖啡、浓咖啡、无因咖啡等),客户可以选择单点咖啡,或者往咖啡里加其他辅助调味品(如:牛奶、巧克力、豆浆等),...

  • 120
    桥接模式

    1 引言 我们考虑这样一个现实生活中的场景:电脑可以分为台式电脑、笔记本电脑、平板电脑,而每种电脑下又分别有联想、苹果、戴尔品牌。按照通常的结构划分,我们会采用下图的多层继承...

  • 120
    适配器模式

    1 什么是适配器 现在市面上的手机充电接口既有Type-C也有Micro USB,假如我的手机使用的是Type-C的充电接口,而数据线是Micro USB的,这时要想让我的手...

  • 原型模式

    1 什么是原型模式 原型模式就是将一个对象A克隆一份得到对象B,对象B与对象A完全一样,并且对象B的修改不会影响到对象A。说白了就是对象的克隆。 2 原型模式的实现 要实现原...

  • 120
    建造者模式

    1 引言 建造者模式也是一种提供创建对象的方式,它可以将一个对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。建造者模式可以在用户不知道对象的建造过程和细节的情况下...