课程设计报告
课程名称: 设计模式
题目名称: 西瓜市场
《设计模式》课程设计报告
目 录
目录
1 系统需求...........................................................................................................1
1.1 概述........................................................................................................1
1.2 功能描述................................................................................................1
2 系统分析...........................................................................................................2
2.1 解决思路................................................................................................2
2.2 模式描述.................................................................................................2
3 系统设计...........................................................................................................5
3.1 类和接口设计........................................................................................5
3.2 UML 类图...............................................................................................6
3.3 界面设计(图形界面)........................................................................7
3.4 功能设计................................................................................................7
4 系统编码实现...................................................................................................8
5 测试与运行结果.............................................................................................10
6 总结.................................................................................................................11
参考文献.............................................................................................................13
附录:完整程序代码.........................................................................................14
《设计模式》课程设计报告
1
1 系统需求
1.1 概述
Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是有 Sun
microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台的总称。
Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人
PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有
全球最大的开发者专业群。在全球云计算和移动互联网的产业环境下,Java 更具
备了显著的优势和广阔前景。运行环境:意指一种把半编译的执行码在目标机器
上运行的环境。
该系统是西瓜售卖程序,我们用设计模式的思想来设计系统结构,然后实现
基本的购买功能。在西瓜售卖系统的开发中,要应用类的继承机制以及一些设计
模式,在设计开发过程中,需要处理个各类相应的封装,并且还要协调好各个模
块之间的逻辑依赖关系和数据通信关系。
1.2 功能描述
(1)购买商品时,可以选择现金支付和扫码支付等支付方式。
(2)可以自由选择商品及商品数目。
(3)可以打印小票。
(4)系统会自动计算该订单需要花费金额数。
《设计模式》课程设计报告
2
2 系统分析
2.1 解决思路
在设计软件的过程中出现了困难单个模式拿出来做都好说,一旦要结合起来
就需要本质的理解各个模式的作用和思想,比如建造者模式的思想就是把一个复
杂的实体分解成各个小的部件,由此我便想到了可以将小票的各个部分进行分解,
从而可以用建造者模式的思想进行实现。通过代理模式的学习以及老师课上的形
象举例,让我想到买卖的过程比较容易实现,并且可以使用抽象工厂模式商品的
生产。
在构建图形界面的时候遇到了比较大的问题。一开始是因为不熟悉软件,导
致某些部件不小心删除,不知道如何还原;后来是界面的搭建过程懂得简单的快
速开发界面,即用 design 拖动部件实现。一旦遇到些逻辑就会比较迷茫,比如如
何实现单选按钮的逻辑。不过在借鉴了在 Android 中的学习,这些小困难也比较
容易的解决了。
2.2 模式描述
(1)单例模式
① 定义:
确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例
② 特点:
1) 私有化的构造函数
2) 私有的静态的全局变量
3) 公有的静态的方法
③ 优点:
《设计模式》课程设计报告
3
1) 单例模式提供了对唯一实例的受控访问。因为单例类封装了它的唯一实例,
所以它可以严格控制客户怎样以及何时访问它
2) 由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要
频繁创建和销毁的对象,单例模式无疑可以提高系统的性能。
3) 允许可变数目的实例。基于单例模式可以进行扩展,使用与控制单例对象相
似的方法来获得指定个数的实例对象,既节省系统资源,又解决了由于单例
对象共享过多有损性能的问题。(注:自行提供指定数目实例对象的类可称为
多例类。)
(2)抽象工厂模式
① 定义:
提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类
② 特点:
1) 和工厂方法一样,具有良好的封装性,抽象工厂是工厂方法的升级形式。
2) 横向扩展容易。例如增加一个 Image,我们只需要创建两个具体的产品类
WindowsImage 和 LinuxImage,然后由工厂创建即可。
3) 纵向扩展困难。例如添加一个新的产品族 Android,AbstractCreator 就需要
对应增加一个 createAndroidProduct(),如果抽象工厂存在多个子类,那么其
所有子类也都要随之更改,严重违背开闭原则。
③ 优点:
1) 抽象工厂模式隔离了具体类的生成,使得客户端并不需要知道什么被创建。
由于这种隔离,更換一个具体工厂就变得相对容易,所有的具体工厂都实现
了抽象工厂中定义的那些公共接口,因此只需改变具体工厂的实例就可以在
某种程度上改变整个软件系统的行为。
2) 当一个产品族中的多个对象被设计成一起工作时,它能够保证客户端始终只