C#模式设计习题分析.doc
《C#模式设计习题分析.doc》由会员分享,可在线阅读,更多相关《C#模式设计习题分析.doc(9页珍藏版)》请在咨信网上搜索。
。 第三章 简单工厂模式 5、使用简单工厂模式设计一个可以创建不同几何形状(Shape),如圆形(Circle)、矩形(Rectangle)和三角形(Triangle)等的绘图工具类,每个几何图形均具有回执Draw()和擦除Erase()两个方案,要求在绘制不支持的几何图形时,抛出一个UnsupportedShapeException异常,绘制类图并使用C#语言编程模拟实现 <<create>> <<create>> <<create>> 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() 实例类图: 上图中,Shape接口充当抽象产品类,其子类Circle、Triangle、Rectangle和UnsupportedShapeException充当具体产品类,ShapeFactory充当工厂类。 第五章 抽象工厂模式 5、一个电器工厂可以生产多种类型的电器,如海尔工厂可以生产海尔电视机、海尔空调等,TCL工厂可以生产TCL电视机、TCL空调等,相同品牌的电器构成了一个产品族,而相同类型的电器构成了一个产品等级结构,试使用抽象工厂模式模拟该环境。 实例类图: <<create>> <<create>> <<create>> 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 <<create>> 上图中,ElectricalFactory接口充当抽象工厂,其子类HaierElectricalFactory和TCLElectricalFactory充当具体工厂,接口Air_conditioning和TV充当抽象产品,其子类HaierAir_conditionin、TCLAir_conditioning、HaierTV和TCLTV充当具体产品。 第六章 建造者模式 4、计算机组装工厂可以将CPU、内存、硬盘、主机、显示器等硬件设备组装在一起构成一台完整的计算机,且构成的计算机可以是笔记本,也可以是台式机,还可以是不提供显示器的服务器主机。对于用户而言,无须关心计算机的组成设备和组装过程,工厂返回给用户的。是完整的计算机对象,使用建造者模式实现计算机组装过程,要求绘制类图并使用C#代码编程模拟实现。 实例类图: Part -<<PropertyImplementation>> type -<<PropertyImplementation>> cpu -<<PropertyImplementation>> memory -<<PropertyImplementation>> disk -<<PropertyImplementation>> hostComputer -<<PropertyImplementation>> display +<<Property>> Type +<<Property>> CPU +<<Property>> Memory +<<Property>> Disk +<<Property>> HostComputer +<<Property>> Display +<<Setter>> set_Type (string value) +<<Getter>> get_Type ( ) +<<Setter>> set_CPU (string value) +<<Getter>> get_CPU ( ) +<<Setter>> set_Memory (string value) +<<Getter>> get_Memory ( ) +<<Setter>> set_Disk (string value) +<<Getter>> get_Disk ( ) +<<Setter>> set_HosyComputer (string value) +<<Getter>> get_HostComputer ( ) +<<Setter>> set_Display (string value) +<<Getter>> 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),在工具栏中添加一个按钮,单击该按钮会弹出一个“工具”窗口,使用单例模式进行设计,使得“工具”窗口只能弹出一个,如图8—6所示: 实例类图: 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)都是飞机制造商,它们都生产载客飞机(Passenger Plane)和载货飞机(Cargo Plane)。试设计一个系统,描述这些飞机制造商以及它们所制造的飞机种类。 实例类图: 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 上图中,Manufacturer充当抽象类,其子类AirbusManufacturer、BoeingManufacturer和McDonnell_DouglasManufacturer充当扩充抽象类;Plane充当实现类接口,其子类CargoPlane和PassengerPlane充当具体实现类。 6、某软件公司要开发一个数据转换工具,可以将数据库中的数据转换成多种文件格式,例如TXT、XML、PDF等格式,同时该工具需要支持多种不同的数据库。试使用桥接模式对其进行设计,并使用C#代码编程模拟实现。 实例类图: 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 : : void TXTformats + DoPlane(Content c): void PDFformats + DoPlane(Content c): void XMLPDFformats + DoPlane(Content c): void + PrasePlane(string PlaneName): void formats 上图中,Data充当抽象类,其子类AccessData、和SQLData充当扩充抽象类;Dataformats充当实现类接口,其子类PDFformats、XMLformats和TXTformats充当具体实现类。 第十一章 组合模式 5、某教育机构的组织结构如图11-8所示: 在该教育机构OA系统中可以给各级办公室下发公文,现采用组合模式设计该机构的组织结构,绘制相应的类图并使用C#语言编程模拟实现,在客户端代码中模拟下发公文。 实例类图: officeList Document { abstract } +Add( Document file ) : void +Remove(Document file) : void +GetChild(int i) : Abstract +IssuedDocument() : void Headquarters -document : string +Headquarters(string document) : void +Add( Document file ) : void +Remove(Document file) : void +GetChild(int i) : Abstract +IssuedDocument() : void Branch -document : string + Branch (string document) : void +Add( Document file ) : void +Remove(Document file) : void +GetChild(int i) :Abstract +IssuedDocument() : void TeachingPoints1 -document : string + TeachingPoints1(string document) : void +Add( Document file ) : void +Remove(Document file) : void +GetChild(int i) : Abstract +IssuedDocument() : void TeachingPoints2 -document : string + TeachingPoints2(string document) : void +Add( Document file ) : void +Remove(Document file) : void +GetChild(int i) : Abstract +IssuedDocument() : void Office -officeList : List<Document> -document : string + Office (string document) : void +Add( Document file ) : void +Remove(Document file) : void +GetChild(int i) :Abstract +IssuedDocument() : void 上图中,Document充当抽象构件类,Office充当容器构件类,Headquarters、Branch、TeachingPoints1和TeachingPoints2充当叶子构件类。 第十二章 装饰模式 4、最简单的手机(SimplePhone)在接受到来电的时候,会发出声音提醒主人,现在需要为该手机添加一项功能,即在接收到来电的时候,除了有声音还能产生振动(JarPhone),还可以得到更加高级的手机(ComplexPhone),来电时它不仅能够发声,产生振动,而且有灯光闪烁提示。现用装饰模式来模拟手机功能的升级过程,要求绘制类图并使用C#语言模拟实现。 实例类图: SimplePhone {abstract} +Display() : void RingPhone +Display() : void ComplexPhone -complex : SimplePhone +ComplexPhone( SimplePhone ) +Display() : void JarPhone +JarPhone( SImplePhone complex ) +Display() : void +SetJarPhonr() : void FlashLight +FlashLight ( SImplePhone complex ) +Display() : void +SetFlashLight() : void 上图中,SimplePhone充当抽象构建类,其子类RingPhone充当具体构建类,SimplePhone类的另一个子类ComplexPhone充当抽象装饰类,ComplexPhone的子类JarPhone和FlashLight充当具体装饰类。 THANKS !!! 致力为企业和个人提供合同协议,策划案计划书,学习课件等等 打造全网一站式需求 欢迎您的下载,资料仅供参考 -可编辑修改-- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 模式 设计 习题 分析
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文