预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

福建工程学院信息科学与工程学院 实验报告 2013–2014学年第一学期任课老师:王晨阳 课程名称C#程序设计班级信管1102座号20姓名郭明光实验题目C#面向对象程序设计训练实验时间2013/10/24实验目的、内容3.设计题 阅读下面说明和代码,在(n)处填充代码。 (1)【说明】 单件模式(Singleton)在某种程度上来说是限制而不是促进类的创建。单件模式确保类有且仅有一个实例,并提供了一个对该实例的全局访问点。在实际程序中,有很多类是需要确保有且仅有一个实例的。 【代码】 usingSystem; classSingletonDemo { privatestaticSingletonDemotheSingleton=null; private(1)SingletonDemo(){} public(2)staticSingletonDemoInstance()//静态全局 { if(null==theSingleton) { theSingleton=(3)newSingletonDemo(); } returntheSingleton; } staticvoidMain(string[]args) { SingletonDemos1=SingletonDemo.Instance(); SingletonDemos2=SingletonDemo.Instance(); if(s1.Equals(s2)) { Console.WriteLine("See,OnlyOneInstance!"); } } } 【程序输出结果】 (2)【说明】 某高校的部门组织结构如图3-1所示,现采用组合(Composition)设计模式来设计,得到如图3-2所示的类图。 其中Department为抽象类,定义了在组织结构图上添加(add)、删除(delete)部门和获取子部门列表的方法接口以及部门名称字段和封装部门名称字段的属性。类ConcreteDepartment表示具体的系部,各系部下还可以设置不同的子部门或教研室。类HRDepartment和类FinanceDepartment分别表示人事处和财务处。 简述组合(Composition)设计模式的特征? 图3-1组织结构图 图3-2类图 【代码】 usingSystem; usingSystem.Collections.Generic; usingSystem.Text; namespaceComposition { public(1)abstractclassDepartment { protectedstringname; publicstringName{(2)get{returnthis.name;}} publicabstractvoidadd(Departmentd); publicabstractvoiddelete(Departmentd); publicabstractList<Department>getChildren(); } publicclassConcreteDepartment:Department { privateList<Department>children=newList<Department>(); publicConcreteDepartment(stringname){this.name=name;} publicoverridevoidadd(Departmentd) { (3)children.add(d); } publicoverridevoiddelete(Departmentd) { children.Remove(d); } publicoverrideList<Department>getChildren(){returnthis.children;} } publicclassHRDepartment:Department { publicHRDepartment(stringname){this.name=name;} publicoverridevoidadd(Departmentd){} publicoverridevoiddelete(Departmentd){} publicoverrideList<Department>getChildren(){returnnull;} } publicclassFinanceDepartment:Department { publicFinanceDepartment(stringname){this.name=name;} publicoverridevoidadd(Departmentd){} publicoverridevoiddelete(