设计模式实验三

合集下载

设计模式实验报告

设计模式实验报告

实验一单例模式的应用1 实验目的1) 掌握单例模式(Singleton)的特点2) 分析具体问题,使用单例模式进行设计。

2 实验内容和要求很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。

通常客户端使用这个类是通过new一个AppConfig的实例来得到一个操作配置文件内容的对象。

如果在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。

事实上,对于AppConfig类,在运行期间,只需要一个对象实例就够了。

那么应该怎么实现呢?用C#控制台应用程序实现该单例模式。

绘制该模式的UML 图。

3 实验代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace AppConfig{public class Singleton{private static Singleton instance;private Singleton(){}public static Singleton GetInstance(){if (instance == null){instance = new Singleton();}return instance;}}class Program{static void Main(string[] args){Singleton singletonOne = Singleton.GetInstance();Singleton singletonTwo = Singleton.GetInstance();if (singletonOne.Equals(singletonTwo)){Console.WriteLine("singletonOne 和 singletonTwo 代表的是同一个实例");}else{Console.WriteLine("singletonOne 和 singletonTwo 代表的是不同实例");}Console.ReadKey();}}}4 实验结果实验二工厂模式的应用1 实验目的1) 掌握工厂模式(Factory)的特点2) 分析具体问题,使用工厂模式进行设计。

设计模式实验三

设计模式实验三

设计模式实验三Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】实验3 创建型设计模式实验实验学时: 2每组人数: 1实验类型: 3 (1:基础性 2:综合性 3:设计性4:研究性)实验要求: 1 (1:必修 2:选修 3:其它)实验类别: 3 (1:基础 2:专业基础 3:专业4:其它)一、实验目的1.熟练使用面向对象设计原则对系统进行重构;2.熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的创建型设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式和单例模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。

二、实验内容1.在某图形库API中提供了多种矢量图模板,用户可以基于这些矢量图创建不同的显示图形,图形库设计人员设计的初始类图如下所示:Circle+ + + + +init ()setColor ()fill ()setSize ()display ()...: void: void: void: void: voidTriangle+++++init ()setColor ()fill ()setSize ()display ()...: void: void: void: void: voidRectangle+++++init ()setColor ()fill ()setSize ()display ()...: void: void: void: void: voidClient在该图形库中,每个图形类(如Circle、Triangle等)的init()方法用于初始化所创建的图形, setColor()方法用于给图形设置边框颜色,fill()方法用于给图形设置填充颜色,setSize()方法用于设置图形的大小,display()方法用于显示图形。

客户类(Client)在使用该图形库时发现存在如下问题:①由于在创建窗口时每次只需要使用图形库中的一种图形,因此在更换图形时需要修改客户类源代码;②在图形库中增加并使用新的图形时需要修改客户类源代码;③客户类在每次使用图形对象之前需要先创建图形对象,有些图形的创建过程较为复杂,导致客户类代码冗长且难以维护。

设计模式实验报告总结(3篇)

设计模式实验报告总结(3篇)

第1篇一、实验背景随着软件工程的不断发展,设计模式作为一种解决软件开发中常见问题的有效方法,越来越受到广泛关注。

本次实验旨在通过学习设计模式,提高编程能力,掌握解决实际问题的方法,并加深对设计模式的理解。

二、实验目的1. 理解设计模式的基本概念和分类;2. 掌握常见设计模式的原理和应用;3. 提高编程能力,学会运用设计模式解决实际问题;4. 培养团队协作精神,提高项目开发效率。

三、实验内容本次实验主要涉及以下设计模式:1. 创建型模式:单例模式、工厂模式、抽象工厂模式、建造者模式;2. 结构型模式:适配器模式、装饰者模式、桥接模式、组合模式、外观模式;3. 行为型模式:策略模式、模板方法模式、观察者模式、责任链模式、命令模式。

四、实验过程1. 阅读相关资料,了解设计模式的基本概念和分类;2. 分析每种设计模式的原理和应用场景;3. 编写代码实现常见设计模式,并进行分析比较;4. 将设计模式应用于实际项目中,解决实际问题;5. 总结实验经验,撰写实验报告。

五、实验结果与分析1. 创建型模式(1)单例模式:通过控制对象的实例化,确保一个类只有一个实例,并提供一个访问它的全局访问点。

实验中,我们实现了单例模式,成功避免了资源浪费和同步问题。

(2)工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。

实验中,我们使用工厂模式创建不同类型的交通工具,提高了代码的可扩展性和可维护性。

(3)抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要指定具体类。

实验中,我们使用抽象工厂模式创建不同类型的计算机,实现了代码的复用和扩展。

(4)建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

实验中,我们使用建造者模式构建不同配置的房屋,提高了代码的可读性和可维护性。

2. 结构型模式(1)适配器模式:将一个类的接口转换成客户期望的另一个接口,使原本接口不兼容的类可以一起工作。

设计模式实验报告

设计模式实验报告

实验一单例模式的应用1 实验目的1) 掌握单例模式(Singleton)的特点2) 分析具体问题,使用单例模式进行设计。

2 实验内容和要求很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。

通常客户端使用这个类是通过new一个AppConfig的实例来得到一个操作配置文件内容的对象。

如果在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。

事实上,对于AppConfig类,在运行期间,只需要一个对象实例就够了。

那么应该怎么实现呢?用C#控制台应用程序实现该单例模式。

绘制该模式的UML图。

3 模式结构图4 UML类图5 代码6运行结果实验二工厂模式的应用1 实验目的1) 掌握工厂模式(Factory)的特点2) 分析具体问题,使用工厂模式进行设计。

2 实验内容和要求有一个OEM制造商代理做HP笔记本电脑(Laptop),后来该制造商得到了更多的品牌笔记本电脑的订单Acer,Lenovo,Dell,该OEM商发现,如果一次同时做很多个牌子的本本,有些不利于管理。

利用工厂模式改善设计,用C#控制台应用程序实现该OEM制造商的工厂模式。

绘制该模式的UML图。

3 模式结构图4 UML类图5 代码6运行结果实验三抽象工厂模式的应用1 实验目的1) 掌握抽象工厂模式(Abstract Factory)的特点2) 分析具体问题,使用抽象工厂模式进行设计。

2 实验内容和要求麦当劳(McDonalds)和肯德基(KFC)快餐店都经营汉堡(Hamburg)和可乐(Cola),用C#控制台应用程序实现这两个快餐店经营产品的抽象工厂模式。

绘制该模式的UML图。

3 模式结构图4 UML类图5代码6运行结果df实验四建造者模式的应用1 实验目的1) 掌握建造者模式(Builder)的特点2) 分析具体问题,使用建造者模式进行设计。

2 实验内容和要求建造者模式是一种创建型模式,它主要是应对项目中一些复杂对象的创建工作。

设计模式实验报告

设计模式实验报告

计算机科学与技术学院实验报告课程名称:软件设计模式专业:计算机科学与技术班级:班学号:姓名:实验一单例模式的应用1 实验目的1) 掌握单例模式(Singleton)的特点2) 分析具体问题,使用单例模式进行设计。

2 实验内容和要求很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。

通常客户端使用这个类是通过new一个AppConfig的实例来得到一个操作配置文件内容的对象。

如果在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。

事实上,对于AppConfig类,在运行期间,只需要一个对象实例就够了。

那么应该怎么实现呢?用C#控制台应用程序实现该单例模式。

绘制该模式的UML图。

[代码截图]:namespace实验一_单例模式_{class Program{static void Main(string[] args){AppConfig appc1 = AppConfig.GetAppConfig();AppConfig appc2 = AppConfig.GetAppConfig();appc1.SetParameterA("hello");appc2.SetParameterA("hi");if (appc1.Equals(appc2)){Console.WriteLine("appc1 和 appc2 代表的是同一个实例");}else{Console.WriteLine("appc1 和 appc2 代表的是不同实例"); }Console.WriteLine(appc1.GetParameterA());Console.WriteLine(appc2.GetParameterA());Console.ReadKey();}}public class AppConfig{private string ParameterA;private static AppConfig appc = null;//1:私有化构造方法,便于在内部控制创建实例的数目private AppConfig(){ }public static AppConfig GetAppConfig(){if (appc == null) {appc = new AppConfig();}return appc;}public string GetParameterA() {return ParameterA;}public void SetParameterA(string ParameterA) { this.ParameterA = ParameterA;}}[运行结果]:实验二工厂模式的应用1 实验目的1) 掌握工厂模式(Factory)的特点2) 分析具体问题,使用工厂模式进行设计。

UML实验报告书实验3-设计模式

UML实验报告书实验3-设计模式

淮海工学院计算机工程学院实验报告书
课程名:《UML理论及实践》
题目:正向工程
班级:Z计121
学号:2014140093
姓名:薛慧君
一、目的与要求
1、熟悉面向对象原则,熟悉GoF中的模式;
2、会初步使用设计模式解决实际问题;
3、掌握正向工程、逆向工程概念;
4、掌握使用Rose画出类图、交互图等来描述设计模型;
5、掌握使用Rose从设计模型使用正向工程,得到代码框架;
6、掌握使用Rose从代码使用逆向工程,得到设计模型,并文档化Project。

二、实验内容或题目
假设有一CAD系统,可能需要绘制处理若干图形(如矩形、圆形、三角形……);而画图程序有若干版本,画图的工作需要依赖于具体的机器型号,新机器可以使用新的画图程序,旧的机器只能使用老版本的程序,请使用桥模式为本系统设计一个方案:请在Rational Rose中给出设计类图,并使用正向工程生成代码框架;在生成的代码中修改后再使用逆向工程,重新生成设计模型。

三、实验步骤及结果
CAD系统设计模型的类图;
四、结果分析与实验体会
通过本次实验,我掌握了:
(1)桥模式:将抽象部分与实现部分分离,使它们都可以独立的变化。

(2)桥模式适用性:①不希望在抽象和实现部分之间有一个固定的绑架关系②类的抽象以及实现都可以通过生成子类的方法加以扩充③对抽象的实现部分的修改应不会对客户产
生影响④对客户完全隐藏抽象的实现⑤有许多类要生成⑥在多个对象间共享实现,同时对客户隐藏这种实现机制
(3)桥模式实现要点:分别定义抽象的接口和实现的接口,抽象接口中聚合一个实现接口的引用,该引用就是连接接口和实现的桥梁。

设计模式实验报告-工厂模式

设计模式实验报告-工厂模式

实验二:工厂模式实验内容简单工厂方法模式:利用简单工厂方法模式创建pad, phone, watch的对象,并使用这些对象娱乐。

工厂模式:利用工厂模式创建pad, phone, watch的对象,并使用这些对象娱乐。

抽象工厂模式:利用抽象工厂模式创建华为、小米、苹果的pad, phone, watch的对象,并使用这些对象娱乐。

简单工厂方法模式设计图1简单工厂模式类图核心代码ConsumerElectronics.java核心代码Pad.java核心代码Watch.java核心代码Phone.java核心代码ConsumerElectronicsFactory.java核心代码实现效果图 2 简单工厂模式实现效果图工厂模式设计图 3 工厂模式类图核心代码ConsumerElectronicsFactory.java核心代码PadFactory.java核心代码WatchFactory.java核心代码PhoneFactory.java核心代码实现效果图4 工厂模式实现效果图抽象工厂模式设计图5抽象工厂模式类图核心代码AbstractFactory.java核心代码AppleFactory.java核心代码HuaweiFactory.java核心代码MiFactory.java核心代码实现效果图 6 抽象工厂模式实现效果图实验体会做完这次试验,下面是我的一些体会:首先,工厂模式是为了解耦:把对象的创建和使用的过程分开。

其次,工厂模式可以降低代码重复。

如果创建对象的过程都很复杂,需要一定的代码量,而且很多地方都要用到,那么就会有很多的重复代码。

我们可以这些创建对象的代码放到工厂里统一管理。

既减少了重复代码,也方便以后对该对象的创建过程的修改维护。

由于创建过程都由工厂统一管理,所以发生业务逻辑变化,不需要逐个修正,只需要在工厂里修改即可,降低维护成本。

另外,因为工厂管理了对象的创建逻辑,使用者并不需要知道具体的创建过程,只管使用即可,减少了使用者因为创建逻辑导致的错误。

实验3 抽象工厂模式

实验3 抽象工厂模式
}
interfaceView {
voidcreate();
}
classAndroidimplementsContral {
publicvoidcreate() {
System.out.println("contral");
}
}
classAndroid2implementsView
{
publicvoidcreate() {
publicvoidcreate() {
System.out.println("mac'RAM");
}
}
interfaceComputerFactory {
CPU produceCPU();
RAM produceRAM();
}
classPcFactoryimplementsComputerFactory {
RAM ram;
Factory = new ComputerFactory();
cpu =factory.produceCPU();
cpu.create();
ram =factory.produceRAM();
ram.create();
}
}
2.类图及代码:
interfaceContral {
voidcreate();
Factory factory =newSymbinFactory();
Contral c;
View v;
c = factory.produce1();
c.create();
v = factory.produce2();
v.create();
}
}
五.实验总结
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CENTRAL SOUTH UNIVERSITY 《软件体系结构》实验报告实验名称设计模式实验二学生姓名学生学号XXX专业班级软件工程1007班指导教师刘伟完成时间2012年12月25日实验三设计模式实验二一、实验目的熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、策略模式和模板方法模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。

二、实验内容使用PowerDesigner和任意一种面向对象编程语言实现外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、策略模式和模板方法模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。

(1) 外观模式某软件公司为新开发的智能手机控制与管理软件提供了一键备份功能,通过该功能可以将原本存储在手机中的通信录、短信、照片、歌曲等资料一次性全部拷贝到移动存储介质(例如MMC卡或SD卡)中。

在实现过程中需要与多个已有的类进行交互,例如通讯录管理类、短信管理类等,为了降低系统的耦合度,试使用外观模式来设计并编程模拟实现该一键备份功能。

(2) 代理模式在某应用软件中需要记录业务方法的调用日志,在不修改现有业务类的基础上为每一个类提供一个日志记录代理类,在代理类中输出日志,如在业务方法method()调用之前输出“方法method()被调用,调用时间为2010-10-10 10:10:10”,调用之后如果没有抛异常则输出“方法method()成功调用”,否则输出“方法method()调用失败”。

在代理类中调用真实业务类的业务方法,使用代理模式设计该日志记录功能的结构,绘制类图并编程模拟实现。

(3) 职责链模式某企业的SCM(Supply Chain Management,供应链管理)系统中包含一个采购审批子系统。

该企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开董事会讨论决定。

试使用职责链模式设计并实现该系统。

(4) 命令模式某软件公司欲开发一个基于Windows平台的公告板系统。

系统提供一个主菜单(Menu),在主菜单中包含了一些菜单项(MenuItem),可以通过Menu类的addMenuItem()方法增加菜单项。

菜单项的主要方法是click(),每一个菜单项包含一个抽象命令类,具体命令类包括OpenCommand(打开命令),CreateCommand(新建命令),EditCommand(编辑命令)等,命令类具有一个execute()方法,用于调用公告板系统界面类(BoardScreen)的open()、create()、edit()等方法。

试使用命令模式设计该系统,使得MenuItem类与BoardScreen类的耦合度降低,绘制类图并编程模拟实现。

(5) 迭代器模式在某在线购物系统的购物车(Shopping Cart)中包含了一个存储商品名称的字符串数组,现需要自定义一个双向迭代器(MyIterator)实现对该商品名称数组的双向(前向和后向)遍历。

绘制类图并编程模拟实现(要求定义抽象层)。

(6) 观察者模式某在线股票软件需要提供如下功能:当股票购买者所购买的某支股票价格变化幅度达到5%时,系统将自动发送通知(包括新价格)给购买该股票的股民。

现使用观察者模式设计该系统,绘制类图并编程模拟实现(要求定义抽象层)。

(7) 策略模式某软件公司欲开发一款飞机模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征,需要模拟的飞机种类及其特征如表1所示:表1 飞机种类及特征一览表为将来能够模拟更多种类的飞机,试采用策略模式设计并模拟实现该飞机模拟系统。

(8) 模板方法模式某软件公司欲为某银行的业务支撑系统开发一个利息计算模块,利息计算流程如下:I. 系统根据账号和密码验证用户信息,如果用户信息错误,系统显示出错提示;II. 如果用户信息正确,则根据用户类型的不同使用不同的利息计算公式计算利息(如活期账户和定期账户具有不同的利息计算公式);III. 系统显示利息。

试使用模板方法模式设计并模拟实现该利息计算模块。

三、实验要求1. 正确无误绘制外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、策略模式和模板方法模式实例的模式结构图;2. 使用任意一种面向对象编程语言实现外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、策略模式和模板方法模式实例,代码运行正确无误。

1. 进一步熟悉PowerDesigner15的常用功能;2. 使用PowerDesigner绘制外观模式实例结构图并用面向对象编程语言实现该模式实例;3. 使用PowerDesigner绘制代理模式实例结构图并用面向对象编程语言实现该模式实例;4. 使用PowerDesigner绘制职责链模式实例结构图并用面向对象编程语言实现该模式实例;5. 使用PowerDesigner绘制命令模式实例结构图并用面向对象编程语言实现该模式实例;6. 使用PowerDesigner绘制迭代器模式实例结构图并用面向对象编程语言实现该模式实例;7. 使用PowerDesigner绘制观察者模式实例结构图并用面向对象编程语言实现该模式实例;8. 使用PowerDesigner绘制策略模式实例结构图并用面向对象编程语言实现该模式实例;9. 使用PowerDesigner绘制模板方法模式实例结构图并用面向对象编程语言实现该模式实例。

五、实验报告要求1. 提供外观模式实例结构图及实现代码;2. 提供代理模式实例结构图及实现代码;3. 提供职责链模式实例结构图及实现代码;4. 提供命令模式实例结构图及实现代码;5. 提供迭代器模式实例结构图及实现代码;6. 提供观察者模式实例结构图及实现代码;7. 提供策略模式实例结构图及实现代码;8. 提供模板方法模式实例结构图及实现代码;9. 注意调整类图中文字的字体及字号,注意图的整体布局和图的大小,避免使用交叉线,注意代码字体和颜色,代码字体需一致,颜色需统一;10. 认真写好实验总结;11. 提交电子版实验报告,格式为“学号-姓名-实验3.doc”,如“060102-张三-实验3.doc”,所有材料(包括类图和源代码)均放在一个Word文件中,格式为doc或docx,不需要提交PowerDeigner所保存的oom模型,也无须单独提交源代码。

1. 类图:ContactManager +OneKeyBackup (): voidSmsManager+OneKeyBackup (): voidBackupFacade----sms song contact photo: SmsManager : SongsManager : ContactManager : PhotoManager++<<Constructor>>BackupFacade ()OneKeyBackup ()...: voidPhotoManager+OneKeyBackup (): voidSongsManager+OneKeyBackup (): void实现代码:2. 类图:Proxy-service: RealService+<<Implement>>method ()...: voidRealService+<<Implement>>method ()...: void Service+method ()...: void实现代码:3. 类图:PurchaseRequest--billMoney reason: double: String+ + +<<Constructor>><<Getter>><<Setter>>PurchaseRequest ()getBillMoney ()setBillMoney (double newBillMoney)...: double: voidLeader{abstract}--namesuccessor: String: Leader+++<<Constructor>>setSeccessor (Leader seccessor)Leader (String name)handleRequest (PurchaseRequest request)...: void: voidDirector++<<Constructor>><<Override>>Director (String name)handleRequest (PurchaseRequest request)...: voidGeneralManager++<<Constructor>><<Override>>GeneralManager (String name)handleRequest (PurchaseRequest request)...: voidManager++<<Constructor>><<Override>>Manager (String name)handleRequest (PurchaseRequest request)...: void实现代码:4. 类图:Menu-menuItemList : ArrayList++addMenuItem (MenuItem item)getMenuItemByName (String itemName)...: void: MenuItem MenuItem--itemName command : String: Command ++++++<<Constructor>><<Getter>><<Setter>><<Getter>><<Setter>>click ()MenuItem (String name, Command cmd)getItemName ()setItemName (String newItemName)getCommand ()setCommand (Command newCommand)...: void : String : void: Command : voidOpenCommand-myBoardScreen : BoardScreen +<<Implement>>execute ()...: voidCreateCommand-myBoardScreen : BoardScreen +<<Implement>>execute ()...: voidEditCommand-myBoardScreen : BoardScreen +<<Implement>>execute ()...: voidBoardScreen+++open ()create ()edit ()...: void : void : void Command+execute ()...: void 实现代码:5. 类图:MyIterator+ + + + + + + + +first ()last ()hasNext ()hasPrevious ()next ()previous ()isFirst ()isLast ()getCurrentItem ()...: void: void: boolean: boolean: void: void: boolean: boolean: ObjectMyCollection+createIterator ()...: MyIteratorNewCollection-obj: Object[]+<<Implement>>createIterator ()...: MyIteratorNewIterator-currentIndex: int+++++++++<<Implement>><<Implement>><<Implement>><<Implement>><<Implement>><<Implement>><<Implement>><<Implement>><<Implement>>first ()last ()hasNext ()hasPrevious ()next ()previous ()isFirst ()isLast ()getCurrentItem ()...: void: void: boolean: boolean: void: void: boolean: boolean: Object实现代码:6. 类图:Observer+response () ...: voidSubject{abstract} -vector: Vector+ + +addObserver (Observer observer) deleteObserver (Observer observer) fireNotice ()...: void: void: voidStock-price: double+ +<<Getter>><<Setter>>getPrice ()setPrice (double newPrice)...: double: voidStocker--namesubject: String: Stock++<<Constructor>><<Implement>>Stocker (String name, Stock subject)response ()...: void实现代码:7. 类图:AirCraft{abstract}--flyBehavior takeOffBehavior : FlyBehavior : TakeOffBehavior++<<Setter>><<Constructor>>setFlyBehavior (FlyBehavior newFlyBehavior)AirCraft (FlyBehavior flyBehavior, TakeOffBehavior takeOffBehavior)...: void FlyBehavior +fly ()...: void TakeOffBehavior +takeOff ()...: void SuperSonicFly +<<Override>>fly ()...: voidSubSonicFly +<<Override>>fly ()...: voidVerticalTakeOff+<<Override>>takeOff ()...: voidLongDistanceTakeOff +<<Override>>takeOff ()...: voidHarrier+<<Constructor>>Harrier (FlyBehavior flyBehavior, TakeOffBehavior takeOffBehavior)...Helicopter+<<Constructor>>Helicopter (FlyBehavior flyBehavior, TakeOffBehavior takeOffBehavior)...AirPlane+<<Constructor>>AirPlane (FlyBehavior flyBehavior, TakeOffBehavior takeOffBehavior)...Fighter+<<Constructor>>Fighter (FlyBehavior flyBehavior, TakeOffBehavior takeOffBehavior)...实现代码:8. 类图:InterestCalculationMethod{abstract}+ + + +process ()display (int interest) checkLogin ()calculate ()...: void: void: void: voidCurrentUser+<<Override>>calculate ()...: voidRegularUser+<<Override>>calculate ()...: void实现代码:七、实验总结自己写。

相关文档
最新文档