C#设计模式-面向对象设计原则

C#设计模式-面向对象设计原则

ID:38831552

大小:2.09 MB

页数:41页

时间:2019-06-20

C#设计模式-面向对象设计原则_第1页
C#设计模式-面向对象设计原则_第2页
C#设计模式-面向对象设计原则_第3页
C#设计模式-面向对象设计原则_第4页
C#设计模式-面向对象设计原则_第5页
资源描述:

《C#设计模式-面向对象设计原则》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、DesignPatterns面向对象设计原则刘伟(Sunny)weiliu_china@126.com大纲面向对象设计原则概述单一职责原则开闭原则里氏代换原则依赖倒转原则接口隔离原则合成复用原则迪米特法则面向对象设计原则概述可维护性(Maintainability):指软件能够被理解、改正、适应及扩展的难易程度可复用性(Reusability):指软件能够被重复使用的难易程度面向对象设计的目标之一在于支持可维护性复用,一方面需要实现设计方案或者源代码的复用,另一方面要确保系统能够易于扩展和修改,具有良好的可维护性面向对象设计原则概述面向对象设计原则为支持可维护性复用而诞生指导性原则,非

2、强制性原则每一个设计模式都符合一个或多个面向对象设计原则,面向对象设计原则是用于评价一个设计模式的使用效果的重要指标之一面向对象设计原则概述设计原则名称定义使用频率单一职责原则(SingleResponsibilityPrinciple,SRP)一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中★★★★☆开闭原则(Open-ClosedPrinciple,OCP)软件实体应当对扩展开放,对修改关闭★★★★★里氏代换原则(LiskovSubstitutionPrinciple,LSP)所有引用基类的地方必须能透明地使用其子类的对象★★★★★依赖倒转原则(DependenceI

3、nversionPrinciple,DIP)高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象★★★★★接口隔离原则(InterfaceSegregationPrinciple,ISP)客户端不应该依赖那些它不需要的接口★★☆☆☆合成复用原则(CompositeReusePrinciple,CRP)优先使用对象组合,而不是继承来达到复用的目的★★★★☆迪米特法则(LawofDemeter,LoD)每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位★★★☆☆单一职责原则单一职责原则定义单一职责原则是最简单的面向对象设

4、计原则,用于控制类的粒度大小单一职责原则:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。SingleResponsibilityPrinciple(SRP):Everyobjectshouldhaveasingleresponsibility,andthatresponsibilityshouldbeentirelyencapsulatedbytheclass.单一职责原则单一职责原则定义就一个类而言,应该仅有一个引起它变化的原因Thereshouldneverbemorethanonereasonforaclasstochange.单一职责原则单一职责原则分析一个类

5、(大到模块,小到方法)承担的职责越多,它被复用的可能性就越小当一个职责变化时,可能会影响其他职责的运作将这些职责进行分离,将不同的职责封装在不同的类中将不同的变化原因封装在不同的类中单一职责原则是实现高内聚、低耦合的指导方针单一职责原则单一职责原则实例实例说明某软件公司开发人员针对CRM(CustomerRelationshipManagement,客户关系管理)系统中的客户信息图表统计模块提出了如图2-1所示的初始设计方案。图2-1初始设计方案结构图在图2-1中,GetConnection()方法用于连接数据库,FindCustomers()用于查询所有的客户信息,CreateCha

6、rt()用于创建图表,DisplayChart()用于显示图表。现使用单一职责原则对其进行重构。单一职责原则单一职责原则实例实例解析开闭原则开闭原则定义开闭原则是面向对象的可复用设计的第一块基石,是最重要的面向对象设计原则开闭原则:软件实体应当对扩展开放,对修改关闭。Open-ClosedPrinciple(OCP):Softwareentitiesshouldbeopenforextension,butclosedformodification.开闭原则开闭原则分析开闭原则由BertrandMeyer于1988年提出在开闭原则的定义中,软件实体可以是一个软件模块、一个由多个类组成的局

7、部结构或一个独立的类开闭原则是指软件实体应尽量在不修改原有代码的情况下进行扩展开闭原则开闭原则分析抽象化是开闭原则的关键相对稳定的抽象层+灵活的具体层对可变性封装原则(PrincipleofEncapsulationofVariation,EVP):找到系统的可变因素并将其封装起来里氏代换原则里氏代换原则定义里氏代换原则:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换o2时,程序P的行为没

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。