软件设计模式

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计说明书

课程名称:软件设计

设计题目:

院系:计算机科学与信息工程学院

学生姓名:

学号:

专业班级:软件工程11-1

指导教师:

2014年6月

课程设计任务书

目录

一、系统目标 (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.选用设计模式

根据需求分析,该旅游策略可以采用了四种设计模式,分别是工厂模式、原型模式、

策略模式和建造者模式

2.1 工厂模式

工厂模式是一种创建型设计模式,工厂模式通过面向对象的方法,将所创建的具体对象的创建工作延迟到了子类,较好的解决了紧耦合的关系。通过定义一个IKFCFactory 接口,产品的创建都是由具体的工厂来完成的,每个工厂只负责一种产品的创建,各个子工厂之间相互独立、职责明确。模式结构图如图2-1:

图2-1 外观模式结构图

2.2建造者模式

建造者模式是一种创建型设计模式,采用建造者模式的主要原因是它将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。该模式主要解决穿什么分格的衣服。模式结构图如图2-2:

图2-2 建造者模式结构图

2.3原型模式

原型设计模式是一种创建型设计模式,它关注的是大量相同或相似对象的创建问题,应用原型模式就是先建立一个原型,然后通过对原型进行复制和修饰的方法,来产生和一个原型相同或相似的新对象。采用原型模式主要是解决点一份相同的食品的问题。模

式结构图如图2-3:

图2-3 原型模式结构图

2.4策略模式

策略模式是一种行为模式,主要体现了算法的动态选择,策略模式可以提供相同行为的不同实现,客户可以根据不同的上下文中的策略方法选中不同的算法。策略模式主要解决了出行方式的选择,模式结构图如图2-4

图2-4 原型模式结构图

三、系统设计

1.系统功能模块设计

a:工厂模式,快速生产消费者点的产品

b:原型模式,克隆生产同一种产品。

c:建造者模式,选择不同风格的服饰。

d:策略模式,选择不同的出行方式。

图3-1系统流程图2.系统模块类图

图3-2 系统模块类图3.系统控制函数

public static void main(String[] args) {

Manner a = new MannerA();

People r1 =new People(a);

r1.choose();

System.out.println("他今天心情不错,精心打扮了一下,他挑选了");

Builder b1 =new PerformA();

r1.construct(b1);

Clothes Blue =b1.getClothes();

Blue.show();

System.out.println("看完了电影,他觉着有点饿,所以想去KFC吃个鸡腿");

r1.display();

System.out.println(" 他发现实在是太好吃了,并且肚子还饿着,又点了一个");

r1.copy();

}

四、系统实现

1.工厂模式

外观模式主要包括KFCFood类、Chicken类、Wings类、IKFCFactory接口、ChickenFactory类和WingsFactory类,IKFCFactory常用来创建一个生产具体产品的工厂。

//工厂模式

public abstract class KFCFood {

public abstract void show();

}

public class Chicken extends KFCFood implements Cloneable{

public void show(){

System.out.print("要一个鸡腿");

}

相关文档
最新文档