資源描述:
《C#面向?qū)ο蟪绦蛟O(shè)計(jì)訓(xùn)練》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、福建工程學(xué)院信息科學(xué)與工程學(xué)院實(shí)驗(yàn)報(bào)告2013–2014學(xué)年第一學(xué)期任課老師:王晨陽課程名稱C#程序設(shè)計(jì)班級信管1102座號20姓名郭明光實(shí)驗(yàn)題目C#面向?qū)ο蟪绦蛟O(shè)計(jì)訓(xùn)練實(shí)驗(yàn)時(shí)間2013/10/24實(shí)驗(yàn)?zāi)康?、?nèi)容3.設(shè)計(jì)題閱讀下面說明和代碼,在(n)處填充代碼。(1)【說明】單件模式(Singleton)在某種程度上來說是限制而不是促進(jìn)類的創(chuàng)建。單件模式確保類有且僅有一個(gè)實(shí)例,并提供了一個(gè)對該實(shí)例的全局訪問點(diǎn)。在實(shí)際程序中,有很多類是需要確保有且僅有一個(gè)實(shí)例的?!敬a】usingSystem;classSingletonDemo{privatestati
2、cSingletonDemotheSingleton=null;private(1)SingletonDemo(){}public(2)staticSingletonDemoInstance()//靜態(tài)全局{if(null==theSingleton){theSingleton=(3)newSingletonDemo();}returntheSingleton;}staticvoidMain(string[]args){SingletonDemos1=SingletonDemo.Instance();SingletonDemos2=SingletonDe
3、mo.Instance();if(s1.Equals(s2)){Console.WriteLine("See,OnlyOneInstance!");}}}【程序輸出結(jié)果】(2)【說明】某高校的部門組織結(jié)構(gòu)如圖3-1所示,現(xiàn)采用組合(Composition)設(shè)計(jì)模式來設(shè)計(jì),得到如圖3-2所示的類圖。其中Department為抽象類,定義了在組織結(jié)構(gòu)圖上添加(add)、刪除(delete)部門和獲取子部門列表的方法接口以及部門名稱字段和封裝部門名稱字段的屬性。類ConcreteDepartment表示具體的系部,各系部下還可以設(shè)置不同的子部門或教研室。類HR
4、Department和類FinanceDepartment分別表示人事處和財(cái)務(wù)處。簡述組合(Composition)設(shè)計(jì)模式的特征?圖3-1組織結(jié)構(gòu)圖圖3-2類圖【代碼】usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceComposition{public(1)abstractclassDepartment{protectedstringname;publicstringName{(2)get{returnthis.name;}}publicabstractvoid
5、add(Departmentd);publicabstractvoiddelete(Departmentd);publicabstractListgetChildren();}publicclassConcreteDepartment:Department{privateListchildren=newList();publicConcreteDepartment(stringname){this.name=name;}publicoverridevoidadd(Department
6、d){(3)children.add(d);}publicoverridevoiddelete(Departmentd){children.Remove(d);}publicoverrideListgetChildren(){returnthis.children;}}publicclassHRDepartment:Department{publicHRDepartment(stringname){this.name=name;}publicoverridevoidadd(Departmentd){}publicoverridev
7、oiddelete(Departmentd){}publicoverrideListgetChildren(){returnnull;}}publicclassFinanceDepartment:Department{publicFinanceDepartment(stringname){this.name=name;}publicoverridevoidadd(Departmentd){}publicoverridevoiddelete(Departmentd){}publicoverrideListge
8、tChildren(){returnnull;}}classProgram{st