从面向对象分析到面向对象设计(OOD)-Read.pptVIP

  • 55
  • 0
  • 约1.22万字
  • 约 62页
  • 2019-05-28 发布于天津
  • 举报

从面向对象分析到面向对象设计(OOD)-Read.ppt

从面向对象分析到面向对象设计(OOD)-Read.ppt

* * * * * 2. 为提高继承程度而修改类定义 如果在一组相似的类中存在公共的属性和公共的行为,则可以把这些公共的属性和行为抽取出来放在一个共同的祖先类中,供其子类继承,如图11.13(a)和(b)所示。在对现有类进行归纳的时候,要注意下述两点: (1)不能违背领域知识和常识;(2)应该确保现有类的协议(即同外部世界的接口)不变。 更常见的情况是,各个现有类中的属性和行为(操作),虽然相似却并不完全相同,在这种情况下需要对类的定义稍加修改,才能定义一个基类供其子类从中继承需要的属性或行为。 * 有时程序员只想用继承作为实现操作共享的一种手段,并不打算确保基类和派生类具有相同的行为。在这种情况下,如果从基类继承的操作中包含了子类不应有的行为,则可能引起麻烦。例如,假设程序员正在实现一个Stack(后进先出栈)类,类库中已经有一个List(表)类。如果程序员从List类派生出Stack类,则如图11.14(a)所示:把一个元素压入栈,等价于在表尾加入一个元素;把一个元素弹出栈,相当于从表尾移走一个元素。但是,与此同时,也继承了一些不需要的表操作。例如,从表头移走一个元素或在表头增加一个元素。万一用户错误地使用了这类操作,Stack类将不能正常工作。 * 图11.14(b)描绘了委托List类实现Stack类操作的方法。Stack类的每个实例都包含一个私有的List类实例(或指

文档评论(0)

1亿VIP精品文档

相关文档