1 / 13
文档名称:

软件设计模式报告.docx

格式:docx   大小:19KB   页数:13页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件设计模式报告.docx

上传人:miao19720107 2019/2/25 文件大小:19 KB

下载得到文件列表

软件设计模式报告.docx

文档介绍

文档介绍:软件设计模式报告计算机科学与技术学院实验报告课程名称:专业:班级:学号:姓名: 实验一单例模式的应用 1实验目的 1)掌握单例模式的特点 2)分析具体问题,使用单例模式进行设计。 2实验内容和要求很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。通常客户端使用这个类是通过new一个AppConfig的实例来得到一个操作配置文件内容的对象。如果在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。事实上,对于AppConfig类,在运行期间,只需要一个对象实例就够了。那么应该怎么实现呢?用C#控制台应用程序实现该单例模式。绘制该模式的UML图。 UML图: 源代码: classProgram { staticvoidMain(string[]args) { AppConfigappConfigOne=(); AppConfigappConfigTwo=(); if((appConfigTwo)) { ("appConfigOne和appConfigTwo代表的是同一个实例!"); } else { ("appConfigOne和appConfigTwo代表的是不同的实例!");} (); } } } 运行结果: 实验小结: 通过这次实验,我了解了单例模式的具体概念和使用方法,并且感受到了他的优点带来的方便,但是同时也知道了该设计模式的缺点:由于单例模式中没有抽象层,因此单例类的扩展有很大困难。实验二工厂模式的应用 1实验目的 1)掌握工厂模式的特点 2)分析具体问题,使用工厂模式进行设计。 2实验内容和要求有一个OEM制造商代理做HP笔记本电脑(Laptop),后来该制造商得到了更多的品牌笔记本电脑的订单Acer,Lenovo,Dell,该OEM商发现,如果一次同时做很多个牌子的本本,有些不利于管理。利用工厂模式改善设计,用C#控制台应用程序实现该OEM制造商的工厂模式。绘制该模式的UML图。UML图: 源代码:classLaptop { public virtualvoidGetLaptop(){} } classHpLaptop:Laptop { publicoverridevoidGetLaptop() { ("生产了一台Hp电脑"); } } classAcerLaptop:Laptop { publicoverridevoidGetLaptop() { ("生产了一台Acer电脑"); } } classLenovoLaptop:Laptop { publicoverridevoidGetLaptop() { ("生产了一台Lenovo电脑"); } } classDellLaptop:Laptop { publicoverridevoidGetLaptop() { ("生产了一台Dell电脑");} } interfaceIFactory { LaptopCreateFactory(); } classHpFactory:IFactory { publicLaptopCreateFactory() { returnnewHpLaptop(); } } classAcerFactory:IFactory { publicLaptopCreateFactory() { returnnewAcerLaptop(); } } classLenovoFactory:IFactory { publicLaptopCreateFactory() { returnnewLenovoLaptop(); } } classDellFactory:IFactory { publicLaptopCreateFactory() { returnnewDellLaptop(); } } classProgram { staticvoidMain(string[]args) 烟台大学软件素养(3)大作业专业:软件工程班级:___计控124-4___姓名:邱学伟学号: (1)装饰者模式装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式是动态地扩展一个对象的功能,而不需要改变原始类代码的一种成熟模式。在装饰模式中,“具体组件”类和“具体装饰”类是该模式中的最重要的两个角色。动态地给对象添加一些额外的职责。就功能来说装饰模式相比生成子类更为灵活。(2)代理模式代理模式是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式是为对象提供一个代理,代理可以控制对它所代理的对象的