- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 设计模式概述;本章教学内容;设计模式的诞生与发展;设计模式的诞生与发展;设计模式的诞生与发展;设计模式的诞生与发展;设计模式的诞生与发展;设计模式的诞生与发展;设计模式的诞生与发展;设计模式的发展
1987年,Kent Beck和Ward Cunningham借鉴Alexander的模式思想在程序开发中开始应用一些模式 ,在OOPSLA会议上发表了他们的成果。
1990年,OOPSLA与ECOOP联合举办,Erich Gamma和Richard Helm等人开始讨论有关模式的话题(Bruce Anderson主持),“四人组” 正式成立,并开始着手进行设计模式的分类整理工作。
1991 年,OOPSLA,Bruce Anderson主持了首次针对设计模式的研讨会 。
1992 年,OOPSLA ,Anderson再度主持研讨会,模式已经逐渐成为人们讨论的话题。 ;设计模式的发展
1993年,Kent Beck 和 Grady Booch 赞助了第一次关于设计模式的会议,这个设计模式研究组织发展成为著名的Hillside Group研究组。
1994 年,由Hillside Group发起,在美国召开了第1届关于面向对象模式的世界性会议——编程语言模式会议。
1995年,“四人组”出版了《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)一书,本书成为1995年最抢手的面向对象书籍,也成为设计模式的经典书籍。
;设计模式的发展
从1995年至今,设计模式在软件开发中得以广泛应用,在Sun的Java SE/Java EE平台和Microsoft的.net平台设计中就应用了大量的设计模式。
诞生了越来越多的与设计模式相关的书籍和网站,设计模式也作为一门独立的课程或作为软件体系结构等课程的重要组成部分出现在国内外研究生和大学教育的课堂上。;设计模式的定义与分类 ;设计模式的定义与分类;设计模式的定义与分类;设计模式的定义与分类;设计模式的定义与分类;GoF设计模式简介 ;设计模式的优点 ;补充知识
1.命名空间
命名空间相当于一个容器,它包含一组定义的类或结构,命名空间也可以嵌套在另一个命名空间中,就像文件目录一样。具有相同名称的类如果在不同的命名空间中,调用时不会产生混淆。在C#中,一般在程序的开头使用关键字using 来引入命名空间,然后就可以自由地使用命名空间下的各种类。这些命名空间大多数??一个顶级的命名空间System。
引入命名空间的语句是:using 命名空间;;以下是一个控制台应用程序生成的几个命名空间:
System:包含基本类和基类,定义常用的数据类型、数据转换、数学运算、异常处理等。
System.Collections.Generic:包含定义泛型集合的接口和类。
System.Linq: 提供支持使用语言集成查询 (LINQ) 进行查询的类和接口
System.Text:包含ASCII、Unicode、UTF-7、UTF-8字符编码的类和用于字符处理的类
;2.接口 (P355)
接口是一组方法和属性的集合。对于行为跨越不同类的对象,可以使用接口。就象类是对对象的抽象一样,接口是对行为的抽象。
(1)声明一个接口
接口用interface声明,接口名称前要加大写字母I,接口中的方法或属性前面不能有修饰符,方法没有方法体。
例:叮当猫从肚皮的口袋里变东西、孙悟空可以拔根毫毛变东西有72变、猪八戒能36变,他们都能变东西,但属于不同的类。理论上讲,分别属于猫类、猴类、猪类,都是动物类的子类。若在动物类中定义变东西的方法,则所有的动物都得继承这个能变东西的方法,显然不合理,所以需要定义一个“变东西” 的接口IChange:
;interface Ichange //默认是public的
{
string ChangeThing(string thing); //不能有修饰符public、private。。。等
}
(2)接口的实现
class MachineCat : Cat, IChange
{
public MachineCat( ):base( ) //base代表MachineCat的父类Cat
{ }
public MachineCat (string name):base( name)
{ }
public strin
原创力文档


文档评论(0)