课 程 设 计 说 明 书 课程名称:设计题目:院 系:学生姓名:学 号:专业班级:指导教师: 软件设计 计算机科学与信息工程学院
软件工程11-1
2014年 6月
课 程 设 计 任 务 书
设计题目 学生姓名 手机生产与销售 所在院系 计算机科学与信息工程学院 专业、年级、班 软件工程11-1 设计要求: 1. 设计一个应用场景,最少使用所学过的三种设计模式解决一个实际问题。 2. 应用场景设计要合理,模式选择要适当。 学生应完成的工作: 1. 应用场景: 周末,大家一般选择出去游玩,先是精心打扮一下,然后选择出行方式,最后选择做什么()这里是就餐),这样,本策略应用而生。 2. 设计模式: 工厂模式、建造者模式、原型模式、策略模式。 (1) 工厂模式:解决就餐方案选择问题。 (2) 原型模式:觉得好吃,继续点一份。 (3) 建造者模式:出发前选择穿什么样的衣服、鞋子等服饰。 (4) 策略模式:选择出行方式。 3. 实现代码: 代码由java语言实现。 参考文献阅读: [1] 徐宏喆,侯迪 等著,实用软件设计模式教程,清华大学出版 [2] 程杰 著,大话设计模式,清华大学出版 [4] 甄镭 著,.net与设计模式,电子工业出版社 [5] [美]Alan Shalloway 著,设计模式精解,清华大学出版社 [6] 莫永腾 著,深入浅出设计模式,清华大学出版社 工作计划: 1. 审题,查阅资料,进行设计前的必要资料准备(3天)。 2. 把程序完整运行出来(4天)。 3. 增加改进程序(3天)。 4. 写课程设计报告(3天)。 5. 提交课程设计报告(1天)。 任务下达日期: 2014 年 6 月 9 日 任务完成日期: 2014 年 6 月 22 日 指导教师(签名): 学生(签名):
目 录
一、 系统目标 ............................................................................................................................................... 1
1. 设计目的 ............................................................................................................................................ 1 2. 需求描述 ............................................................................................................................................ 1 二、 系统模式选择 ....................................................................................................................................... 1
1.需求分析 .............................................................................................................................................. 1 2.选用设计模式 ...................................................................................................................................... 1
2.1 工厂模式 .................................................................................................................................. 2 2.2建造者模式 ............................................................................................................................... 2 2.3原型模式 ................................................................................................................................... 3 2.4策略模式 ................................................................................................................................... 4
三、 系统设计 ............................................................................................................................................... 4
1.系统功能模块设计 .............................................................................................................................. 4 2.系统模块类图 ...................................................................................................................................... 5 3.系统控制函数 ...................................................................................................................................... 5 四、 系统实现 ............................................................................................................................................... 6
1.工厂模式 .............................................................................................................................................. 6 2.原型模式 .............................................................................................................................................. 8 3.建造者模式 .......................................................................................................................................... 9 4.策略模式 ............................................................................................................................................ 12 五、系统设计总结 ....................................................................................................................................... 13
1. 实现的功能和优点 .......................................................................................................................... 13 2. 不足之处和改进方向 ...................................................................................................................... 14 3. 完成心得 .......................................................................................................................................... 14 六、 参考文献 ............................................................................................................................................. 14
一、系统目标 1. 设计目的
设计模式的提出,是面向对象程序设计演化过程中一个重要的里程碑,设计模式使得人们可以更加简单和方便地去复用成功的软件设计和体系结构,从而能够帮助设计者更快更好地完成系统设计。希望通过本次课程设计,可以更加了解设计模式的概念、设计模式的基本要素、设计模式的原则和设计模式的类型,以及各种设计模式的特点和适用情形,会根据不同的场景去灵活运用各种模式,加深对软件设计课程的理解。通过运用设计模式来解决实际系统中遇到的问题,巩固所学的理论知识,提高程序设计能力,从而具备利用计算机编程分析解决综合性实际问题的初步能力。
2. 需求描述
周末的时候大家一般出去玩,然后吃点好的东西,这样,可以分为好几个步骤,首先,选择穿什么样的衣服,然后选择选择什么样的出行方式,最后选择吃什么样的东西。虽然这是一个很简单的问题,如果能用设计模式的思想将这个简单的问题抽象化,这样会对我们了解设计模式非常有帮助。本次课程设计选择了“旅游策略”,应用所学到的四种设计模式来解决问题,将设计模式的具体内容与实际的问题相结合,实现系统的相应功能。系统中总共用到四种设计模式,分别是工厂模式、原型模式、建造者模式和策略模式。
二、 系统模式选择 1.需求分析
工厂模式通过面向对象的方法,将所创建的具体对象的创建工作延迟到了子类,较好的解决了紧耦合的关系,工厂模式用来解决怎么很快的生产出来顾客要求的食品。 原型模式对客户隐藏了具体的产品类,减少了客户知道的名字数目,原型模式用来解决再点一份食品的问题。建造者模式实现代码和表示代码的分开,主要解决选择什么样的衣服搭配方式,而不必考虑怎么搭配衣服。策略模式是算法的动态选择,策略模式主要解决了选择什么样的出行方式,而不必关心方式到底有什么变化。
2.选用设计模式
根据需求分析,该旅游策略可以采用了四种设计模式,分别是工厂模式、原型模式、
1
策略模式和建造者模式 2.1 工厂模式
工厂模式是一种创建型设计模式,工厂模式通过面向对象的方法,将所创建的具体对象的创建工作延迟到了子类,较好的解决了紧耦合的关系。通过定义一个IKFCFactory接口,产品的创建都是由具体的工厂来完成的,每个工厂只负责一种产品的创建,各个子工厂之间相互独立、职责明确。模式结构图如图2-1:
图2-1 外观模式结构图
2.2建造者模式
建造者模式是一种创建型设计模式,采用建造者模式的主要原因是它将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。该模式主要解决穿什么分格的衣服。模式结构图如图2-2:
2