资源描述:
《设计模式C#案例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、设计模式C#案例GRASP-通用责任分配软件模式,GoF-“四人帮”设计模式。以下案例,JAVA和VC++程序员请分别采用JAVA和VC++程序实现。为减少测试代码量,采用了C#控制台应用程序;编程环境为微软VS.Net2008。1.GRASP模式:多态–C#案例学习多态以及集合类(Main方法中List和Array类)的用法。多态案例:Person类有虚方法Show(),该类派生出2个子类:Student、Teacher。1.1设计类图1.2案例代码publicclassPerson{publicPerson(){}publicPerson(stringname,str
2、ingsex){this.Name=name;this.Sex=sex;}publicoverridestringToString(){return"name"+Name+",sex"+Sex+";";}publicvirtualvoidShow()//C#虚方法{Console.WriteLine("Person:"+this.ToString());}publicstringName{get;set;}publicstringSex{get;set;}}publicclassStudent:Person{publicStudent(){}publicStudent(stri
3、ngname,stringsex,stringstudentNo,stringclassname){this.Name=name;this.Sex=sex;this.StudentNO=studentNo;this.Classname=classname;}publicoverridestringToString(){returnbase.ToString()+"studentNO"+StudentNO+",class"+Classname+";";}publicoverridevoidShow(){Console.WriteLine("Student:"+this.ToStr
4、ing());}publicstringStudentNO{get;set;}publicstringClassname{get;set;}}publicclassTeacher:Person{publicTeacher(){}publicTeacher(stringname,stringsex,stringdepartment,stringprofessionalTitle){this.Name=name;this.Sex=sex;this.Department=department;this.ProfessionalTitle=professionalTitle;}publ
5、icoverridestringToString(){returnbase.ToString()+"department"+Department+",professionaltitle"+ProfessionalTitle+";";}publicoverridevoidShow(){Console.WriteLine("Teacher:"+this.ToString());}publicstringDepartment{get;set;}publicstringProfessionalTitle{get;set;}}classProgram{staticvoidMain(str
6、ing[]args){Console.WriteLine("TestclassSystem.Collections.Generic.List..");Listpersons=newList();//Person家族(Person及其子孙类)类对象均可存入其中Personp1=newPerson("张三","男");persons.Add(p1);//List.Add()方法persons.Add(newPerson("李丽","女"));persons.Add(newStudent("张强","男","201201189","计科12
7、01"));persons.Add(newPerson("Jack","man"));persons.Add(newTeacher("田建华","男","电信学院","讲师"));persons.Add(newTeacher("包小军","男","计科院","副教授"));foreach(Personpinpersons)p.Show();//此时调用的是哪个类的Show()方法?persons.Remove(p1);//List.Remove()方法foreach(Personpin