《设计模式实验报告(共12页)298.pdf》由会员分享,可在线阅读,更多相关《设计模式实验报告(共12页)298.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 实验(shyn)一 单例模式(msh)的应用 1 实验(shyn)目的 1)掌握(zhngw)单例模式(Singleton)的特点 2)分析具体问题,使用单例模式进行设计。2 实验内容和要求 很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。+GetParameterA()+SetParameterA()-ParameterA:stringAppConfig 通常客户端使用这个类是通过 new一个 AppConfig的实例来得到一个操作配置文件内容的对象。如果在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。事实上
2、,对于 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 stat
3、ic 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 和 singletonT
4、wo 代表(dibio)的是同一个实例);else Console.WriteLine(singletonOne 和 singletonTwo 代表(dibio)的是不同实例);Console.ReadKey();4 实验(shyn)结果 实验(shyn)二 工厂模式(msh)的应用 1 实验(shyn)目的 1)掌握工厂(gngchng)模式(Factory)的特点 2)分析具体问题,使用工厂模式进行设计。2 实验内容和要求 有一个 OEM 制造商代理做 HP 笔记本电脑(Laptop),后来该制造商得到了更多的品牌笔记本电脑的订单 Acer,Lenovo,Dell,该 OEM 商发现,如果
5、一次同时做很多个牌子的本本,有些不利于管理。利用工厂模式改善设计,用C#控制台应用程序实现该 OEM 制造商的工厂模式。绘制该模式的 UML图。3 实验代码 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Factory class Computer public virtual void print()Console.Write(我是Computern);class HPComputer:Comput
6、er public override void print()Console.Write(我是HPComputern);class AcerComputer:Computer public override void print()Console.Write(我是AcerComputern);class DellComputer:Computer public override void print()Console.Write(我是DellComputern);interface Ifactory Computer CreateComputer();class HPFactory:Ifact
7、ory public Computer CreateComputer()return new HPComputer();class AcerFactory:Ifactory public Computer CreateComputer()return new AcerComputer();class DellFactory:Ifactory public Computer CreateComputer()return new DellComputer();class Program static void Main(string args)Ifactory factory=new HPFact
8、ory();Computer computer=factory.CreateComputer();computer.print();factory=new DellFactory();computer=factory.CreateComputer();computer.print();factory=new AcerFactory();computer=factory.CreateComputer();computer.print();4 实验(shyn)截图 实验(shyn)三 抽象工厂模式(msh)的应用 1 实验(shyn)目的 1)掌握抽象(chuxing)工厂模式(Abstract
9、Factory)的特点 2)分析具体问题,使用抽象工厂模式进行设计。2 实验内容和要求 麦当劳(McDonalds)和肯德基(KFC)快餐店都经营汉堡(Hamburg)和可乐(Cola),用 C#控制台应用程序实现这两个快餐店经营产品的抽象工厂模式。绘制该模式的 UML图。3 实验代码 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace AbstractFactory class Cola public v
10、irtual void print()Console.Write(i am colan);class Hum public virtual void print()Console.Write(i am hamburgern);class KFCCola:Cola public override void print()Console.Write(i am KFCcolan);class MDCola:Cola public override void print()Console.Write(i am MDcolan);class KFChum:Hum public override void
11、 print()Console.Write(i am KFChamburgern);class MDhum:Hum public override void print()Console.Write(i am MDhamburgern);abstract class factory public abstract Hum createHum();public abstract Cola createCola();class KFCFectory:factory public override Hum createHum()return new KFChum();public override
12、Cola createCola()return new KFCCola();class MDFectory:factory public override Hum createHum()return new MDhum();public override Cola createCola()return new MDCola();class Program static void Main(string args)factory f=new KFCFectory();Hum h=f.createHum();Cola c=f.createCola();h.print();c.print();f=n
13、ew MDFectory();h=f.createHum();c=f.createCola();h.print();c.print();4 实验(shyn)结果 实验(shyn)四 建造(jinzo)者模式(msh)的应用 1 实验(shyn)目的 1)掌握建造者模式(Builder)的特点 2)分析具体问题,使用建造者模式进行设计。2 实验内容和要求 建造者模式是一种创建型模式,它主要是应对项目中一些复杂对象的创建工作。所谓“复杂对象”,是指此对象中还含有其它的子对象。我们现在定义一个场景:汽车生产必须包含车轮(Wheel)、油箱(OilBox)和车身(Body),应用建造者模式,用 C#控
14、制台应用程序实现该设计,构建BMW 品牌和 BenZ品牌汽车生产。绘制该模式的 UML图。3 实验代码 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Builder class Car private String wheel;private String oilBox;private String body;public void setWheel(String wheel)this.wheel=w
15、heel;public void setOilBox(String oilBox)this.oilBox=oilBox;public void setBody(String body)this.body=body;public void introuduce()Console.WriteLine(wheel);Console.WriteLine(oilBox);Console.WriteLine(body);abstract class CarBuilder protected Car car=new Car();public abstract void buildWheel();public
16、 abstract void buildOilBox();public abstract void buildBody();public Car getCar()return car;class BMWBuilder:CarBuilder public override void buildBody()car.setWheel(wheel made in BMW);public override void buildOilBox()car.setOilBox(oilBox made in BMW);public override void buildWheel()car.setBody(bod
17、y made in BMW);class BenZBuilder:CarBuilder public override void buildBody()car.setWheel(wheel made in Benz);public override void buildOilBox()car.setOilBox(oilBox made in Benz);public override void buildWheel()car.setBody(body made in Benz);class Director private CarBuilder carBuilder;public Direct
18、or(CarBuilder carBuilder)this.carBuilder=carBuilder;public void setCarBuilder(CarBuilder carBuilder)this.carBuilder=carBuilder;public void construct()carBuilder.buildWheel();carBuilder.buildBody();carBuilder.buildOilBox();class Program static void Main(string args)Car car;CarBuilder carbuilder=new B
19、MWBuilder();Director director=new Director(carbuilder);director.construct();car=carbuilder.getCar();car.introuduce();carbuilder=new BenZBuilder();director.setCarBuilder(carbuilder);director.construct();car=carbuilder.getCar();car.introuduce();Console.ReadKey();4 实验(shyn)结果 内容摘要 (1)实验一 单例模式的应用 1 实验目的 1)掌握单例模式(Singleton)的特点 2)分析具体问题,使用单例模式进行设计(2)如果在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源(3)事实上,对于 AppConfig 类,在运行期间,只需要一个对象实例就够了(4)2 实验内容和要求 有一个 OEM 制造商代理做 HP 笔记本电脑(Laptop),后来该制造商得到了更多的品牌笔记本电脑的订单 Acer,Lenovo,Dell,该 OEM 商发现,如果一次同时做很多个牌子的本本,有些不利于管理
限制150内