04 2023 档案
摘要:策略模式(Strategy Pattern) 使用策略模式设计影院售票系统的打折方案。 某软件公司为某电影院开发了一套影院售票系统,在该系统中需要为不同类型的用户提供不同的电影票打折方式,具体打折方案如下: (1) 学生凭学生证可享受票价8折优惠。 (2) 年龄在10周岁及以下的儿童可享受每张票减免
阅读全文
摘要:策略模式(Strategy Pattern) 定义:定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法可以独立于使用它的客户变化。 对象行为型模式 又称为政策(Policy)模式 每一个封装算法的类称之为策略(Strategy)类 策略模式提供了一种可插入式(Pluggabl
阅读全文
摘要:观察者模式代码实现 选择合适的设计模式设计以下场景: 猫(Cat)大叫一声,老鼠(Mouse)开始逃跑,主人(Master)被惊醒。 要求:1. 要有联动性,老鼠和主人的行为是被动的;2. 考虑可扩展性,猫的叫声可能引起其他联动效应;3. 给出模式名称及定义,并结合场景绘制结构图。 观察者模式 类图
阅读全文
摘要:观察者模式 定义:观察者模式(Observer Pattern):定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象都得到通知并被自动更新。 对象行为型模式 别名: 发布-订阅(Publish/Subscribe)模式 模型-视图(Model/View)模式 源-监听器
阅读全文
摘要:命令模式代码实现 为了用户使用方便,某系统提供了一系列功能键。用户可以自定义功能键的功能,例如功能键FunctionButton可以用于退出系统(由SystemExitClass类来实现),也可以用于显示帮助文档(由DisplayHelpClass类来实现)。用户可以通过修改配置文件来改变功能键的用
阅读全文
摘要:行为型模式(Behavioral Pattern) 定义:关注系统中对象之间的交互,研究系统在运行时对象之间的相互通信与协作,进一步明确对象的职责 行为型模式:不仅仅关注类和对象本身,还重点关注它们之间的相互作用和职责划分 分类: 类行为型模式:使用继承关系在几个类之间分配行为,主要通过多态等方式来
阅读全文
摘要:桥接模式代码实现 某软件公司要开发一个跨平台图像浏览系统。 实例说明:要求该系统能够显示BMP、JPG、GIF、PNG等多种格式的文件,并且能够在Windows、Linux、UNIX等多个操作系统上运行。系统首先将各种格式的文件解析为像素矩阵(Matrix),然后将像素矩阵显示在屏幕上,在不同的操作
阅读全文
摘要:桥接模式(Bridge Pattern) 定义:将抽象部分与它的实现部分解耦,使得两者都能够独立变化。 又被称为柄体(Handle and Body)模式或接口(Interface)模式 用抽象关联取代了传统的多层继承 将类之间的静态继承关系转换为动态的对象组合关系 简单结构:4个角色 Abstra
阅读全文
摘要:装饰模式代码实现 使用装饰模式设计实现计算费用的功能系统。 实例说明:某咖啡店在卖咖啡时可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算总费用。现使用装饰模式为该咖啡店设计一个程序以实现计算费用的功能,输出每种饮料的详细描述及花费。 类图: 源代码: Beverage packa
阅读全文
摘要:装饰模式(Decorator Pattern) 定义:动态地给一个对象增加一些额外的职责。就扩展功能而言,装饰模式提供了一种比使用子类更加灵活的替代方案。 ==对象结构型==模式 以对客户透明的方式==动态地给一个对象附加上更多的责任== 在==不需要创建更多子类==的情况下,让对象的功能得以扩展
阅读全文
摘要:适配器模式代码实现 使用适配器模式设计玩具汽车控制软件。 实例说明:某公司欲开发一款儿童玩具汽车,为了更好地吸引小朋友的注意力,该玩具汽车在移动过程中伴随着灯光闪烁和声音提示。在该公司以往的产品中已经实现了控制灯光闪烁(例如警灯闪烁)和声音提示(例如警笛音效)的程序,为了重用先前的代码并且使得汽车控
阅读全文
摘要:结构型模式 定义: 结构型模式(Structural Pattern)==关注如何将现有类或对象组织在一起形成更加强大的结构== 不同的结构型模式==从不同的角度组合类或对象==,它们在尽可能满足各种面向对象设计原则的同时为类或对象的组合提供一系列巧妙的解决方案 两大类: 类结构型模式 ==关心类的
阅读全文
摘要:分析并运行程序代码,先说明选择的设计模式,再画出其类图。 单例模式 类图: 源代码: Visitor package com.fish.factory.singletonPattern.lab3_1; public class Visitor { private static Visitor vis
阅读全文
摘要:原型模式 定义:使用原型实例指定待创建对象的类型,并且==通过复制这个原型来创建新的对象==。 备注 通过克隆方法所创建的对象是==全新的对象==,它们在内存中拥有新的地址 通过不同的方式对克隆对象进行修改以后,==可以得到一系列相似但不完全相同的对象== 简单结构:3个角色 Prototype(抽
阅读全文
摘要:工厂方法 用工厂方法设计电动自行车工厂的模拟程序。为每种品牌的电动自行车提供一个子工厂,如爱玛工厂专门负责生产爱玛(Aima)牌电动自行车,雅迪工厂专门负责生产雅迪(Yadea)牌电动自行车。如果今后需要生产台铃(Tailg)牌电动自行车,只需要增加一个新的台铃电动自行车工厂即可,无须修改原有代码,
阅读全文
摘要:创建型模式 定义:关注对象的创建过程创建型模式对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离,对用户隐藏了类的实例的创建细节 关注点: 创建什么(What) 由谁创建(Who) 何时创建(When) 概述: 模式 简单工厂模式 简单结构:3个角色 Factory(工厂角色)
阅读全文
摘要:依赖(Dependency)关系:一种使用关系,它是对象之间耦合度最弱的一种关联方式 package com.fish.relation.dependency; public class MobilePhone { public void transfer(){ } } package com.fi
阅读全文
摘要:引言 设计模式就是把 优化为 这就是设计模式的作用 使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强 可以提高程序员的思维能力、编程能力和设计能力 使程序设计更加标准化、代码编制更加工程化,使软件开发效率大大提高,从而缩短软件的开发周期 小知识 设计模式是源于建筑业 “四人组(Gan
阅读全文