面向对象设计原则及设计模式.ppt

面向对象设计原则及设计模式.ppt

ID:62294607

大小:529.50 KB

页数:90页

时间:2021-04-25

面向对象设计原则及设计模式.ppt_第1页
面向对象设计原则及设计模式.ppt_第2页
面向对象设计原则及设计模式.ppt_第3页
面向对象设计原则及设计模式.ppt_第4页
面向对象设计原则及设计模式.ppt_第5页
资源描述:

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

1、面向对象的设计原则Object-OrientedDesignPrinciples从问题开始!长方形与正方形假如我们有一个类:长方形(Rectangle)我们需要一个新的类,正方形(Square)问:可否直接继承长方形?没问题,因为数学上正方形就是长方形的子类!2开始设计:正方形publicclassRectangle{privateintwidth;privateintheight;publicvoidsetWidth(intw){width=w;}publicintgetWidth(){returnwidth;}pu

2、blicvoidsetHeight(inth){height=h;}publicintgetHeight(){returnheight;}}publicclassSquare extendsRectangle{publicvoidsetWidth(intw){super.setWidth(w);super.setHeight(w);}publicvoidsetHeight(inth){super.setWidth(h);super.setHeight(h);}}3设计方案正确吗?publicstaticvoidresi

3、ze(Rectangler){while(r.getHeight()<=r.getWidth()){r.setHeight(r.getHeight()+1);}System.out.println(“It’sOK.");}Rectangler1=newRectangle();r1.setHeight(5);r1.setWidth(15);resize(r1);Rectangler2=newSquare();r2.setHeight(5);r2.setWidth(15);resize(r2);使用父类(长方形)时,程序正

4、常运行使用子类(正方形)时,程序陷入死循环设计出问题了?继承出问题了?4为什么会出现问题?违背了面向对象的设计原则!5面向对象的设计原则什么是面向对象设计原则?面向对象设计原则有什么意义?是指导面向对象设计的基本指导思想是评价面向对象设计的价值观体系是设计模式的出发点和归宿6设计目标设计目标可扩展性(Extensibility)灵活性(Flexibility)可插入性(Pluggability)……7设计质量:好的设计什么是好的设计?容易理解容易修改和扩展容易复用容易实现与应用简单、紧凑、经济适用让人工作起来心情愉快的

5、设计8面向对象的基本设计原则SRP:单一职责原则TheSingleResponsibilityPrincipleOCP:开放-封闭原则TheOpen-ClosePrincipleLSP:Liskov替换原则TheLiskovSubstitutionPrincipleISP:接口隔离原则TheInterfaceSegregationPrincipleDIP:依赖倒置原则TheDependencyInversionPrinciple……9SRPSRP(TheSingleResponsibilityPrinciple,单一职

6、责原则)就一个类而言,应该仅有一个引起它变化的原因有关类的职责分配问题,是面向对象设计中最重要的基本原则“Acritical,fundamentalabilityinOOA/Distoskillfullyassignresponsibilitytosoftwarecomponents.”CraigLarman10SRP本质SRP体现了内聚性(Cohesion)内聚性:一个模块的组成元素之间的功能相关性类的职责定义为“变化的原因”,每个职责都是变化的一个轴线;当需求变化时,该变化会反映为类的职责的变化如果一个类承担了多于

7、一个的职责,那么引起它变化的原因就会有多个11违反SRP的案例Rectangle类可能会因为两方面的原因而变化:计算几何方面的原因和用户界面设计方面的原因。其中只一发生变化之后,必须修改Rectangle类,而这种修改则可能导致另一个应用程序出错除此之外,违反SRP还会带来物理依赖的缺点。12解决方案增加新的类,使得每个类仅有一个职责13单一职责原则下面这个类的设计是否合理?14单一职责原则这个类处理的事情太多计算薪水计算税费在磁盘上读写他们自己如何将它们转化成XML或逆向转化如何用不同的报表打印这意味着:从SAX改为

8、JDOM、将数据库从Access变成Oracle、改变税费报表的格式,都得改变Employee类15单一职责原则16LSPLSP(TheLiskovSubstitutionPrinciple,Liskov替换原则)“若对于类型S的任一对象o1,均有类型T的对象o2存在,使得在T定义的所有程序P中,用o1替换o2之后,程序的行为不变

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

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

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