代码改变世界

阅读排行榜

Web 服务寻址 (WS-Addressing)

2012-02-27 00:49 by 宅的一米, 1194 阅读, 收藏,
摘要: 转载自MSDN技术文章中的Web 服务寻址 (WS-Addressing) Web 服务寻址 (WS-Addressing) 发布日期 : 4/1/2004 | 更新日期 : 4/1/2004 由Adam Bosworth,BEA, Don Box,Microsoft(编辑), Erik Christensen,Microsoft, Francisco Curbera,IBM(编辑),... 阅读全文

OOP的几个原则-----SRP:单一职责原则

2012-02-29 22:29 by 宅的一米, 702 阅读, 收藏,
摘要: 单一职责原则的定义是:一个类应该只有一个发生变化的原因.为什么需要将不同职责分离到单独的类中?每个职责都存在一个变化点,当需求发生变化时,该变化会反映为类的职责变化.如果一个类承担了太多的职责,那么引起它变化的原因就会有多个.同时,一个类承担太多职责,说明这个类具有很强的耦合性,如果依赖的模块越多,当该类发生变化,脆弱性就越严重.考虑一个示例,有两个应有程序使用Rectangle类,其中一个应用程序是有关计算几何方面的,利用Rectangle类计算几何形状,但不会绘制在屏幕上.另外一个应用程序是关于图形绘制的,它可能也会进行一些几何计算方面的工作,并在屏幕上绘制矩形.下面代码是我的一个实现.. 阅读全文

OOP的几个原则-----OCP:开闭原则(上)

2012-03-05 01:32 by 宅的一米, 538 阅读, 收藏,
摘要: 开闭原则的定义是:软件实体(类/模块/函数)应该是可以扩展的,但是不可以修改如果程序中的一处代码修改产生连锁反应,导致一系列相关模块的修改,那么设计就具有僵化性.开闭原则建议我们对系统进行重构,这样以后对系统在进行同样的改动,就不会导致更多的修改.如何正确使用开闭原则,那么以后再进行同样的改动时,只需要添加新的代码,而不必改动正常运行的代码.遵循开闭原则的模块主要有两个特征:1.对于扩展是开放的:意味着模块的行为是可扩展的,当应用程序发生变化时,我们可以对模块进行扩展,使其具有满足那些改变的新行为.换句话说我们可以改变模块的功能.2.对于修改是封闭的:对模块进行扩展是,不必改动模块的源代码或. 阅读全文

OOP的几个原则-----LSP:Liskov替换原则(上)

2012-03-08 00:54 by 宅的一米, 390 阅读, 收藏,
摘要: LSP的定义是:子类型必须能够替换掉它们的基类型.OCP主要的机制是抽象和多态.而LSP探讨的问题是如何构建最佳的集成层次,它们的特征是什么?如何避免使我们创建的类层次结构掉进不符合OCP的陷阱中去.Barbara Liskov在1988年首次提出这个原则:若对类型S的每一个对象O1,都存在一个类型T的对象O2,使得在所有针对T编写的程序P中,用O1替换O2后,程序P的行为功能不变,则S是T的子类型.按照这个原则我们可以大致推导出这样一段代码:View Code classProgram{staticvoidMain(string[]args){So1=newS();P.Show(o1);C. 阅读全文

OOP的几个原则-----OCP:开闭原则(下)

2012-03-05 23:44 by 宅的一米, 385 阅读, 收藏,
摘要: 上一篇着重介绍了开闭原则的概念,通过类图我们可以看出,如果不对Client和Server类进行解耦,当Client类需要使用另外一个Server类时,必须对相关代码进行修改.导致不必要的僵化性和脆弱性.下面将通过一个渐进的示例来展示如何运用开闭原则:1.客户需要有一个在标准GUI上绘制圆应用程序.Circle类View Code classCircle{privateGuid_id;publicCircle(){_id=Guid.NewGuid();}publicvoidDraw(){Console.WriteLine("ID:{0}圆形绘制",_id.ToString(& 阅读全文