tanhuobin_uml06.Object-Oriented+Design+Principles.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
tanhuobin_uml06.Object-OrientedDesignPrinciples

面向对象分析设计 Object-Oriented Analysis Design 谭火彬 -2- 第06章 面向对象的设计原则 Object-Oriented Design Principles -3- 学习路线图 -4- -4- 从问题开始! 长方形与正方形 假如我们有一个类:长方形(Rectangle) 我们需要一个新的类,正方形(Square) 问:可否直接继承长方形? 没问题,因为数学上正方形就是长方形的子类! -5- -5- 开始设计:正方形 public class Rectangle { private int width; private int height; public void setWidth(int w) { width = w; } public int getWidth() { return width; } public void setHeight(int h) { height = h; } public int getHeight() { return height; } } public class Square extends Rectangle { public void setWidth(int w) { super.setWidth (w); super.setHeight (w); } public void setHeight(int h) { super.setWidth (h); super.setHeight (h) ; } } -6- -6- 设计方案正确吗? public static void resize(Rectangle r) { while (r.getHeight() = r.getWidth()) { r.setHeight(r.getHeight() + 1); } System.out.println(“It’s OK.); } Rectangle r1 = new Rectangle(); r1.setHeight(5); r1.setWidth(15); resize(r1); Rectangle r2 = new Square(); r2.setHeight(5); r2.setWidth(15); resize(r2); 使用父类(长方形)时,程序正常运行 使用子类(正方形)时,程序陷入死循环 设计出问题了?继承出问题了? -7- -7- 为什么会出现问题? 违背了面向对象的设计原则! -8- -8- 面向对象的设计原则 面向对象的设计原则 是面向对象设计的基本指导思想 是评价面向对象设计的价值观体系 是设计模式的出发点和归宿 面向对象的设计原则是构造高质量软件的出发点 -9- -9- 设计目标 构造出高质量软件,以保持系统稳定 设计目标 可扩展性 (Extensibility) 灵活性 (Flexibility) 可插入性 (Pluggability) …… -10- -10- 设计质量:培养灵敏的嗅觉 糟糕的设计总是散发出臭味,让人不悦 判断一个设计的好坏,主观上能否让你的合作方感到心情愉悦,是最直观的标准 设计开发人员要培养嗅觉,当你看到UML图或者代码,感到杂乱、繁琐、郁闷的时候,你可能正面对一个糟糕的设计 这种嗅觉是在实践开发中培养起来的,而面向对象设计原则对此加以归纳和总结 -11- -11- 设计质量:坏的设计 什么是坏的设计? 僵硬性(Rigidity):刚性,难以扩展 脆弱性(Fragility):易碎,难以修改 牢固性(Immobility):无法分解成可移植的组件 不必要的复杂性(Needless Repetition):Ctrl C + Ctrl V 晦涩性(Opacity):不透明,很难看清设计者的真实意图 -12- -12- 设计质量:好的设计 什么是好的设计? 容易理解 容易修改和扩展 容易复用 容易实现与应用 简单、紧凑、经济适用 让人工作起来心情愉快的设计 设计原则是提高设计质量的基本原则 -13- -13- 面向对象的基本设计原则 LSP:Liskov替换原则 The Liskov Substitution Principle OCP:开放-封闭原则 The Open-Close Principle SRP:单一职责原则 The Single Responsibility Princ

文档评论(0)

有一二三 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档