




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章第三章简单工厂模式简单工厂模式 5、使用简单工厂模式设计一个可以创建不同几何形状(Shape) ,如圆形(Circle) 、矩形 (Rectangle)和三角形(Triangle)等的绘图工具类,每个几何图形均具有回执 Draw()和擦 除 Erase()两个方案, 要求在绘制不支持的几何图形时, 抛出一个 UnsupportedShapeException 异常,绘制类图并使用 C#语言编程模拟实现 实例类图:实例类图: 上图中, Shape 接口充当抽象产品类, 其子类 Circle、 Triangle、 Rectangle 和 UnsupportedShapeException 充当具体产品类, ShapeFactory 充当工厂类。 第五章第五章抽象工厂模式抽象工厂模式 5、一个电器工厂可以生产多种类型的电器,如海尔工厂可以生产海尔电视机、海尔空调等, TCL 工厂可以生产 TCL 电视机、TCL 空调等,相同品牌的电器构成了一个产品族,而相同类 Shape +Draw():void +Erase():void ShapeFactory +ShapeProduce(string type):Shape Circle +Draw():void +Erase():void Triangle +Draw():void +Erase():void Rectangle +Draw():void +Erase():void UnsupportedShapeException +UnsupportedShapeException() 型的电器构成了一个产品等级结构,试使用抽象工厂模式模拟该环境。 实例类图:实例类图: 上图中,ElectricalFactory 接口充当抽象工厂,其子类 HaierElectricalFactory 和 TCLElectricalFactory 充当具体工厂, 接口 Air_conditioning 和 TV 充当抽象产品,其子类 HaierAir_conditionin、TCLAir_conditioning、HaierTV 和 TCLTV 充当具体产品。 ElectricalFactory +CreateTV():TV +CreateAir_conditioning():Air_conditioning HaierElectricalFactory +CreateTV():TV +CreateAir_conditioning():Air_conditioning TCLElectricalFactory +CreateTV():TV +CreateAir_conditioning():Air_conditioning HaierAir_conditioning +Display():void TCLAir_conditioning +Display():void HaierTV +Display():void TCLTV +Display():void Air_conditioning +Display():void TV +Display():void Client 第六章第六章建造者模式建造者模式 4、计算机组装工厂可以将 CPU、内存、硬盘、主机、显示器等硬件设备组装在一起构成一 台完整的计算机,且构成的计算机可以是笔记本,也可以是台式机,还可以是不提供显示器 的服务器主机。 对于用户而言, 无须关心计算机的组成设备和组装过程, 工厂返回给用户的。 是完整的计算机对象,使用建造者模式实现计算机组装过程,要求绘制类图并使用 C#代码 编程模拟实现。 实例类图:实例类图: Part -type -cpu -memory -disk -hostComputer -display +Type +CPU +Memory +Disk +HostComputer +Display +set_Type (stringvalue) +get_Type ( ) +set_CPU (stringvalue) +get_CPU ( ) +set_Memory (stringvalue) +get_Memory ( ) +set_Disk (stringvalue) +get_Disk ( ) +set_HosyComputer (stringvalue) +get_HostComputer ( ) +set_Display (stringvalue) +get_Display ( ) : string : string : string : string : string : string : string : string : string : string : string : string : void : string : void : string : void : string : void : string : void : string : void : string ComputerPartBuilder abstract # computer Computer = new Computer() + BuildType() + BuildCPU() + BuildMemory() + BuildDisk() + BuildHostComputer() + BuildDisplay() + CreateComputer() : void : void : void : void : void : void : Computer ComputerAssemble + Construct(ComputerPartBuilder ab) : Computer NoteBookBuilder + BuildType() + BuildCPU() + BuildMemory() + BuildDisk() + BuildHostComputer() + BuildDisplay() : void : void : void : void : void : void PCBulider + BuildType() + BuildCPU() + BuildMemory() + BuildDisk() + BuildHostComputer() + BuildDisplay() : void : void : void : void : void : void ServerBulider + BuildType() + BuildCPU() + BuildMemory() + BuildDisk() + BuildHostComputer() + BuildDisplay() : void : void : void : void : void : void 上图中,ComputerAssemble 充当指挥者,ComputerPartBuilder 充当抽象建造者,NoteBookBuilder、PCBulider 和 ServerBulider 充当具体建造者,Part 充当复杂产品。 第八章第八章单例模式单例模式 6、使用 MS Visual Studio 设计一个多文档窗口(MDI) ,然后创建一个工具栏(ToolStrip) , 在工具栏中添加一个按钮,单击该按钮会弹出一个“工具”窗口,使用单例模式进行设计, 使得“工具”窗口只能弹出一个,如图 86 所示: 实例类图:实例类图: ToolStrip - Strip : ToolStrip = null - Mini_Tool : ArrayList = null -ToolStrip() + GetToolStrip():ToolStrip + AddTool (string Tool):void + RemoveTool (string Tool):void + GetTool():string 上图中,将工具栏 ToolStrip 设计为单例角色,其中包含一个工 具的集合 Mini_Tool,每次在 Mini_Tool 中随机选择一个小工具来相 应按钮的请求。 第十章第十章桥接模式桥接模式 5、空客(Airbus) 、波音(Boeing)和麦道(McDonnell-Douglas)都是飞机制造商,它们都 生产载客飞机(PassengerPlane)和载货飞机(CargoPlane) 。试设计一个系统,描述这 些飞机制造商以及它们所制造的飞机种类。 实例类图:实例类图: 上图中, Manufacturer充当抽象类, 其子类AirbusManufacturer、 BoeingManufacturer和McDonnell_DouglasManufacturer充当扩充抽 象类;Plane充当实现类接口,其子类CargoPlane和PassengerPlane 充当具体实现类。 PlaneType Plane + DoPlane(PlaneType p): void PassengerPlane + DoPlane(PlaneType p): void CargoPlane + DoPlane(PlaneType p): void Manufacturer abstract # plane: Plane + SetPlane(Plane plane): void + PrasePlane(string PlaneName): void AirbusManufacturer + PrasePlane(string PlaneName): void BoeingManufacturer + PrasePlane(string PlaneName): void McDonnell_DouglasManufacturer + PrasePlane(string PlaneName): void plane 6、某软件公司要开发一个数据转换工具,可以将数据库中的数据转换成多种文件格式,例 如 TXT、XML、PDF 等格式,同时该工具需要支持多种不同的数据库。试使用桥接模式对其 进行设计,并使用 C#代码编程模拟实现。 实例类图:实例类图: 上图中,Data充当抽象类,其子类AccessData、和SQLData充当 扩充抽象类;Dataformats充当实现类接口,其子类PDFformats、 XMLformats和TXTformats充当具体实现类。 第十一章第十一章组合模式组合模式 5、某教育机构的组织结构如图 11-8 所示: Data abstract # formats:Dataformats + SetDataformats(Dataformats formats): void + ParseFile(string fileName): void AccessData + ParseFile(string fileName): void SQLData + ParseFile(string fileName): void Content Dataformats + DoContent(Content c): void TXTformats + DoPlane(Content c): void PDFformats + DoPlane(Content c): void XMLPDFformats + DoPlane(Content c): void formats 在该教育机构 OA 系统中可以给各级办公室下发公文,现采用组合模式设计该机构的组织结 构,绘制相应的类图并使用 C#语言编程模拟实现,在客户端代码中模拟下发公文。 实例类图:实例类图: officeList Document abstract +Add( Document file ): void +Remove(Document file): void +GetChild(int i): Abstract +IssuedDocument(): void Headquarters -document : string +Headquarters(stringdocument) : void +Add( Document file ): void +Remove(Document file): void +GetChild(int i): Abstract +IssuedDocument(): void Branch -document : string + Branch (stringdocument): void +Add( Document file ): void +Remove(Document file): void +GetChild(int i):Abstract +IssuedDocument(): void TeachingPoints1 -document : string + TeachingPoints1(stringdocument) : void +Add( Document file ): void +Remove(Document file): void +GetChild(int i): Abstract +IssuedDocument(): void TeachingPoints2 -document : string + TeachingPoints2(stringdocument) : void +Add( Document file ): void +Remove(Document file): void +GetChild(int i): Abstract +IssuedDocument(): void Office -officeList : List -document : string + Office (stringdocument): void +Add( Document file ): void +Remove(Document file): void +GetChild(int i):Abstract +IssuedDocument(): void 上图中,Document充当抽象构件类,Office充当容器构件类, Headquarters、Branch、TeachingPoints1和TeachingPoints2充当叶 子构件类。 第十二章第十二章
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食品加工与食品安全知识点梳理
- 2025年现代物流与仓储管理知识考核试卷及答案
- 2025年城市交通管理基础知识考试试题及答案
- 2025年工程造价管理相关测试卷及答案
- 2025年湖北卷高考政治真题
- 2025年甘肃省武威市凉州区金塔镇招聘专业化管理的大学生村文书笔试备考题库参考答案详解
- 2025年甘肃省民航机场集团校园招聘45人笔试参考题库及参考答案详解1套
- 物资领用盘点管理制度
- 特殊工种认证管理制度
- 特殊病人用药管理制度
- 非法倾倒处置固体废物整治实施方案
- 2025合同范本电子产品购销合同
- 2025年通信工程与技术考试试卷及答案
- 防范和打击非法金融活动竞赛试题库500题(含答案)
- 《电力建设工程施工安全管理导则》(NB∕T 10096-2018)
- 会计专业工作简历表(中级)
- 重庆市沙坪坝区2021-2022学年三年级下学期期末综合检测语文试题(无答案)
- 篮球--传切配合(纵切)课件.ppt
- 《消防安全培训资料》word版
- 绘就“行走的思政课”
- 临床技术操作规范重症医学分册(共41页)
评论
0/150
提交评论