




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
验证性
《设计模式》课程实验教学大纲验证性
课程名称:设计模式课程代码:10011210课程学时:64学时(理论32学时,实验32学时)课程学分:2适用专业:计算机科学与技术(软件工程方向)
一、验证性实验【课程教学中验证原理、算法、技术、效果等】
实验一:面向对象基础实验(2学时)
【实验类型】
【实验目的】
掌握OOP基本概念,并能运用这些基本概念进行应用设计。
【实验要求】
基于JAVA开发环境,综合运用主要的OOP概念,比如类、接口、继承、多态,并将这些概念融合到一个特定的应用场景中。
【实验内容】
基于JAVA开发环境设计一个简易的学生信息管理的控制台应用,要求在该实验项目中需要融合使用类、接口、继承、多态等主要OOP概念。
(6学时)(6学时)设计性
【实验类型】
【实验目的】
1.了解建造者模式、原型模式、单例模式的主要作用2.理解建造者模式、原型模式、单例模式的角色及作用3.掌握利用建造者模式、原型模式、单例模式进行代码设计并绘制相关UML类图4.理解建造者模式、原型模式、单例模式的优点和缺点
【实验要求】
基于JAVA开发环境,设计案例,体会原型模式的应用方式。所设计的实验程序要满足以下两点:1)体现原型模式的工作原理;2)符合面向对象的设计原则。
【实验内容】
Prototype模式其实就是常说的"虚拟构造函数",其主要思想就是:基于现有的对象克隆一个新的对象出来,一般是有对象的内部提供克隆的方法,通过该方法返回一个对象的副本。举一个例子来解释这个模式的作用,假设有一家店铺是配钥匙的,他对外提供配制钥匙的服务(提供Clone接口函数),你需要配什么钥匙它不知道只是提供这种服务,具体需要配什么钥匙只有到了真正看到钥匙的原型才能配好。也就是说,需要一个提供这个服务的对象,同时还需要一个原型(Prototype),不然不知道该配什么样的钥匙。原型模式的UML图如下:
适配器模式、装饰模式、外观模式、代理模式设计性
原型模式的克隆分为深拷贝和浅拷贝。至于具体的操作过程应该是在clone函数中实现的,原适配器模式、装饰模式、外观模式、代理模式设计性型模式作为创建型模式中的最特殊的一个模式,具体的创建过程,是由对象本身提供,这样我们在很多的场景下,我们可以很方便的快速的构建新的对象,就像前面分析讲解的几类场景中,可能我们通过使用对象的克隆,比通过其他几类的创建型模式,效果要好的多,而且代价也小很多。打个比方,原型模式对于系统的扩展,可以做到无缝的扩展,为什么这么说呢?比如其他的创建型工厂,如果新增一个对象类型,那么我们不管是修改配置文件的方式,还是修改代码的形式,无疑我们都是需要进行修改的,对于我们大家通用的公共应用来说这无疑是危险的,那么通过原型模式,则可以解决这样的问题,因为类型本身实现这样的方法即可,但是也有一定的缺点,每个对象都实现这样的方法,无疑是很大的工作量,但是在某些特殊的环境下,或者实际的项目中,可能原型模式是好的选择。
实验三:结构型模式实验()(9
学时)
【实验类型】
【实验目的】
1.了解适配器模式、装饰模式、外观模式、代理模式的主要作用
2.理解适配器模式、装饰模式、外观模式、代理模式的角色及作用3.掌握利用适配器模式、装饰模式、外观模式、代理模式进行代码设计并绘制相关UML类图4.理解适配器模式、装饰模式、外观模式、代理模式的优点和缺点
【实验要求】
基于JAVA开发环境,设计案例,体会装饰模式的应用方式。所设计的实验程序要满足以下两点:1)体现装饰模式的工作原理;2)符合面向对象的设计原则。
【实验内容】
应用开发中通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定了,是静态的。使用Decorator的理由是:这些功能需要由用户动态决定加入的方式和时机。Decorator提供了"即插即用"的方法,在运行期间决定何时增加何种功能。应用(适用环境)1)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。2)处理那些可以撤销的职责。3)当不能采用生成子类的方法进行扩充时,一种情况是,可能有大量独立的扩展,为支持一种组合将产生大量的子类,使得子类数目成爆炸性增长。另一种情况是可能类定义被隐藏,或类定义不能用于生成子类。结构在谈及软件中的结构,一般会用UML图表示,下面是Decorator模式的UML结构图:
成分:在装饰模式中的各个角色有:抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类。装饰(Decorator)角色:持有一个构件(Component)对象的实例,并定义一个与抽象构件接口一致的接口。具体装饰(ConcreteDecorator)角色:负责给构件对象"贴上"附加的责任。
)(5学时)验证性
1.)(5学时)验证性2.ConcreateComponent是转换器模式中具体的被装饰的类,IO包中的媒体流就是此种对象。3.Decorator装饰器模式中的核心对象,所有具体装饰器对象的父类,完成装饰器的部分职能。在上面的例子中Decorator类和这里的对应。该类可以只做一些简单的包裹被装饰的对象,也可以还包含对Component中方法的实现„„他有一个鲜明的特点:继承至Component,同时包含一个Component作为其成员变量。装饰器模式动机中的动态地增加功能是在这里实现的。4.ConcreteDecoratorA和ConcreteDecoratorB是两个具体的装饰器对象,他们完成具体的装饰功能。装饰功能的实现是通过调用被装饰对象对应的方法,加上装饰对象自身的方法。这是装饰器模式动机中的添加额外功能的关键
实验案例设计:通过装饰模式为图书馆的图书与录像带添加"可借阅"装饰"。
实验四:行为模式实验(策略模式、模板方法模式
【实验类型】
【实验目的】
1.了解策略模式、模板方法模式的主要作用2.理解策略模式、模板方法模式的角色及作用3.掌握利用策略模式、模板方法模式进行代码设计并绘制相关UML类图4.理解策略模式、模板方法模式的优点和缺点
【实验要求】
基于JAVA开发环境,设计一个在线图书销售案例,体会策略设计模式的应用方式。所设计的实验程序要满足以下两点:1)体现策略模式的工作原理;2)符合面向对象的设计原则。
【实验内容】
1、模式定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
抽象方法:父类中只声明但不加以实现,而是定义好规范,然后由它的子类去实现。模版方法:由抽象类声明并加以实现。一般来说,模版方法调用抽象方法来完成主要的逻钩子方法:由抽象类声明并加以实现。但是子类可以去扩展,子类可以通过扩展钩子方法抽象类的任务是搭建逻辑的框架,通常由经验丰富的人员编写,因为抽象类的好坏直接决
2、模式练习:设计一个商店的收银系统,这个商店有普通顾客,会员,超级会员以及金牌会抽象方法:父类中只声明但不加以实现,而是定义好规范,然后由它的子类去实现。模版方法:由抽象类声明并加以实现。一般来说,模版方法调用抽象方法来完成主要的逻钩子方法:由抽象类声明并加以实现。但是子类可以去扩展,子类可以通过扩展钩子方法抽象类的任务是搭建逻辑的框架,通常由经验丰富的人员编写,因为抽象类的好坏直接决员的区别,针对各个顾客,有不同的打折方式,并且一个顾客每在商店消费1000就增加一个级别,那么我们就可以使用策略模式,因为策略模式描述的就是算法的不同,而且这个算法往往非常繁多,并且可能需要经常性的互相替换。定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。模版方法模式的结构
模版方法模式由一个抽象类和一个(或一组)实现类通过继承结构组成,抽象类中的方法分为三种:
辑功能,并且,模版方法大多会定义为final类型,指明主要的逻辑功能在子类中不能被重写。
来影响模版方法的逻辑。
定了程序是否稳定性。
实现类用来实现细节。抽象类中的模版方法正是通过实现类扩展的方法来完成业务逻辑。只要实现类中的扩展方法通过了单元测试,在模版方法正确的前提下,整体功能一般不会出现大的错误。模版方法的优点及适用场景
容易扩展:一般来说,抽象类中的模版方法是不易反生改变的部分,而抽象方法是容易反生变化的部分,因此通过增加实现类一般可以很容易实现功能的扩展,符合开闭原则。便于维护:对于模版方法模式来说,正是由于他们的主要逻辑相同,才使用了模版方法,假如不使用模版方法,任由这些相同的代码散乱的分布在不同的类中,维护起来是非常不方便的。
学时)综合性
比较灵活:因为有钩子方法,因此,子类的实现也可以影响父类中主逻辑的运行。但是,在学时)综合性灵活的同时,由于子类影响到了父类,违反了里氏替换原则,也会给程序带来风险。这就对抽象类的设计有了更高的要求。在多个子类拥有相同的方法,并且这些方法逻辑相同时,可以考虑使用模版方法模式。在程序的主框架相同,细节不同的场合下,也比较适合使用这种模式。二、综合性实验【课程教学中综合所学内容、项目式等】
创建型模模式综合实验(简单工厂模式、工厂方法模式、抽象工厂模式)(10
【实验类型】
【实验目的】
1.了解简单工厂模式、工厂方法模式、抽象工厂模式的主要作用2.理解简单工厂模式、工厂方法模式、抽象工厂模式的角色及作用3.掌握利用简单工厂模式、工厂方法模式、抽象工厂模式进行代码设计并绘制相关UML类图4.理解简单工厂模式、工厂方法模式、抽象工厂模式的优点和缺点
【实验要求】
基于JAVA开发环境,设计图形绘制和字符串加密两个控制台应用,体会简单工厂模式的应用方式。所设计的实验程序要满足以下两点:1)体现简单工厂模式的工作原理;2)符合面向对象的设计原则。
【实验内容】
简单工厂模式(SimpleFactoryPattern)属于类的创新型模式,又叫静态工厂方法模式(StaticFactoryMethodPattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式的UML图:简单工厂模式中包含的角色及其相应的职责如下:工厂角色(Creator):这是简单工厂模式的核心,由它负责创建所有的类的内部逻辑。当然工厂类必须能够被外界调用,创建所需要的产品对象。抽象(Product)产品角色:简单工厂模式所创建的所有对象的父类,注意,这里的父类可以是接口也可以是抽象类,它负责描述所有实例所共有的公共接口。具体产品(ConcreteProduct)角色:简单工厂所创建的具体实例对象,这些具体的产品往往都拥有共同的父类。
工厂方法设计模式基于JAVA开发环境,设计案例,体会工厂方法设计模式的应用方式。所设计的实验程序要满足以下两点:1)体现工厂方法模式的工作原理;2)符合面向对象的设计原则。
【实验内容】
1、创建型模式的工作原理创建型模式隐藏了类的实例的创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的。创建型模式分为:工厂方法模式(FactoryMethod)、抽象工厂模式(AbstractFactory)、建造者模式(Builder)、原型模式Prototype)、单例模式(Singleton)等五类。2、FactoryMethod模式的工作原理工厂方法模式(FactoryMethodPattern):也叫虚拟构造器(VirtualConstructor)模式或者多态工厂(PolymorphicFactory)模式,在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成。它的UML类图如下:
工厂方法模式包含如下角色:Product:抽象产品ConcreteProduct:具体产品Creator:抽象工厂ConcreteCreator:具体工厂FactoryMethod模式的特点为当系统扩展需要添加新的产品对象时,仅仅需要添加一个具体产品对象以及一个具体工厂对象,原有工厂对象不需要进行任何修改,也不需要修改客户端,很好地符合了“开闭原则”。用FactoryMethod模式设计一个饮料工厂的模拟程序:要求为每种品牌的饮料提供一个子工厂,如:芒果汁工厂专门负责生产芒果汁,苹果汁工厂专门负责生产苹果汁,如果需要生产桃子汁或菠萝汁,只需要对应增加一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 制造业公共服务平台风险分析与应对策略
- 瓶装水的分类与种类分析
- 2025至2030年中国硬质塑料配件数据监测研究报告
- 保障性租赁住房改造环境影响评估
- 2025至2030年中国圆口冲刀数据监测研究报告
- 2025年中国镀铝膜专用涂料市场调查研究报告
- 重污染企业的绿色技术创新对组织韧性的作用研究
- 2025年中国酸甜脆萝卜市场调查研究报告
- 天津市滨海新区2024-2025学年高一上学期期末检测物理试卷(解析版)
- 供种合同范例
- 库车县“7.9”天山炼化油储罐火灾扑救战评
- 金属结构制造安全作业指导书
- 眼外伤-PPT课件
- 教学-主动脉夹层PPT课件
- 上海市企业投资项目核准、备案及建设审批流程指南
- 绝句迟日江山丽
- 船体开孔规则
- (精选)沸腾焙烧炉设计相关计算
- 多元化与专业化的利弊之争
- ASMEB16.14-1991中文版钢铁管螺纹管堵、内外螺丝和锁紧螺母
- 《雕塑工程工程量清单计价定额》
评论
0/150
提交评论