第6章.面向对象的设计原则.pptVIP

  • 9
  • 0
  • 约1.11万字
  • 约 71页
  • 2016-09-14 发布于广东
  • 举报
由LSP引发的思考 设计质量评价 判断继承层次是否合适,并不是从参与继承的类本身来判定的,而是从使用该继承层次的程序P入手。 Is a 关系的思考 常识:正方形也是长方形;但对Resize()方法而言,不是;鸵鸟是鸟吗?考虑飞行特征,它不是鸟. 契约式设计 针对父类制定契约,子类必须不能违背这种契约。 context Rectangle::setLength(int len):void post: length=len and width=width@pre 从实现继承到接口继承 实现继承 泛化和可替换性并不是等同的。设计者在应用泛化时往往忽略了可替换性的要求,通过泛化来复用代码。这种用于复用代码的泛化称为实现继承。 基类中定义好属性和方法的实现,派生类继承。 接口继承 派生类继承基类的属性和操作声明,并为这些操作声明提供实现;而基类一般通过抽象类或接口来声明,并不为派生类提供实现。 这种继承体现出“针对接口编程”的思想,是一种安全的继承机制,可以实现类间的可替换性。 -*- -*- 由通信图产生类图 这是一个非常理想的结构:责任被合理分配,各对象之间的消息平衡,没有泡泡类,协作图与类图相匹配 问题是:该程序能够运行在MarkIV型的咖啡机上吗? -*- -*- 我们得到的是“咖啡机” 所有这三

文档评论(0)

1亿VIP精品文档

相关文档