C#模式设计习题分析

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

第三章简单工厂模式

5、使用简单工厂模式设计一个可以创建不同几何形状(Shape),如圆形(Circle)、矩形(Rectangle)和三角形(Triangle)等的绘图工具类,每个几何图形均具有回执Draw()和擦除Erase()两个方案,要求在绘制不支持的几何图形时,抛出一个UnsupportedShapeException 异常,绘制类图并使用C#语言编程模拟实现

实例类图:

上图中,Shape接口充当抽象产品类,其子类Circle、Triangle、Rectangle和UnsupportedShapeException充当具体产品类,ShapeFactory充当工厂类。

第五章抽象工厂模式

5、一个电器工厂可以生产多种类型的电器,如海尔工厂可以生产海尔电视机、海尔空调等,TCL工厂可以生产TCL电视机、TCL空调等,相同品牌的电器构成了一个产品族,而相同类

型的电器构成了一个产品等级结构,试使用抽象工厂模式模拟该环境。

实例类图:

上图中,ElectricalFactory接口充当抽象工厂,其子类HaierElectricalFactory和TCLElectricalFactory充当具体工厂,接口Air_conditioning和TV充当抽象产品,其子类

HaierAir_conditionin、TCLAir_conditioning、HaierTV和TCLTV 充当具体产品。

第六章建造者模式

4、计算机组装工厂可以将CPU、内存、硬盘、主机、显示器等硬件设备组装在一起构成一台完整的计算机,且构成的计算机可以是笔记本,也可以是台式机,还可以是不提供显示器的服务器主机。对于用户而言,无须关心计算机的组成设备和组装过程,工厂返回给用户的。是完整的计算机对象,使用建造者模式实现计算机组装过程,要求绘制类图并使用C#代码编程模拟实现。

实例类图:

上图中,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)。试设计一个系统,描述这些飞机制造商以及它们所制造的飞机种类。

实例类图:

上图中,Manufacturer充当抽象类,其子类AirbusManufacturer、BoeingManufacturer和

McDonnell_DouglasManufacturer充当扩充抽象类;Plane充当实现类接口,其子类CargoPlane和PassengerPlane充当具体实现类。

6、某软件公司要开发一个数据转换工具,可以将数据库中的数据转换成多种文件格式,例如TXT、XML、PDF等格式,同时该工具需要支持多种不同的数据库。试使用桥接模式对其进行设计,并使用C#代码编程模拟实现。

实例类图:

上图中,Data充当抽象类,其子类AccessData、和SQLData 充当扩充抽象类;Dataformats充当实现类接口,其子类PDFformats、XMLformats和TXTformats充当具体实现类。

第十一章组合模式

5、某教育机构的组织结构如图11-8所示:

在该教育机构OA系统中可以给各级办公室下发公文,现采用组合模式设计该机构的组织结构,绘制相应的类图并使用C#语言编程模拟实现,在客户端代码中模拟下发公文。

实例类图:

上图中,Document充当抽象构件类,Office充当容器构件类,Headquarters、Branch、TeachingPoints1和TeachingPoints2充当叶子构件类。

第十二章装饰模式

4、最简单的手机(SimplePhone)在接受到来电的时候,会发出声音提醒主人,现在需要为该手机添加一项功能,即在接收到来电的时候,除了有声音还能产生振动(JarPhone),还可以得到更加高级的手机(ComplexPhone),来电时它不仅能够发声,产生振动,而且有灯光闪烁提示。现用装饰模式来模拟手机功能的升级过程,要求绘制类图并使用C#语言模拟

实现。

实例类图:

上图中,SimplePhone充当抽象构建类,其子类RingPhone 充当具体构建类,SimplePhone类的另一个子类ComplexPhone 充当抽象装饰类,ComplexPhone的子类JarPhone和FlashLight 充当具体装饰类。

相关文档
最新文档