面向对象方法详解:核心概念与优势

需积分: 11 9 下载量 138 浏览量 更新于2024-08-21 收藏 1.91MB PPT 举报
"面向对象方法与技术讲义" 在面向对象方法中,关系是类与类之间的一种连接,它们帮助我们理解和设计系统中的各种组件如何相互作用。标题提及的“何时使用三种关系”指的是在面向对象设计中常见的三种关系:包含(Containment)、泛化(Generalization)和扩展(Extension)。以下是对这三种关系的详细说明: 1. 包含(Containment)关系: 当在多个独立的用例中发现代码重复时,可以考虑使用包含关系。这种关系允许我们将共享的代码或数据封装到一个单独的类中,然后在需要的地方引用它,以消除冗余。例如,多个类可能都需要访问相同的功能或数据,此时可以创建一个公共的父类或模块,让这些类通过继承或引用来共享这些元素,提高代码的复用性和可维护性。 2. 泛化(Generalization)关系: 泛化是面向对象中的继承概念,它描述了子类与父类之间的关系。当需要表达一个类是另一个类的特殊形式时,可以使用泛化。例如,"车辆"是一个父类,而"轿车"和"卡车"是其子类,它们都继承了"车辆"的一些通用属性和行为。泛化有助于保持代码的简洁性和一致性,同时也支持多态性,使得子类可以覆盖或扩展父类的方法。 3. 扩展(Extension)关系: 在描述正常行为的一个变化情形,希望以更受控的方式在基本用例中说明特殊情况时,扩展关系就显得尤为重要。扩展通常体现在用例图中,通过"扩展点"(extension point)来表示。例如,一个基本的"订单处理"用例可能有一个"促销活动"的扩展,这个扩展在特定条件下才会执行,如满足某种优惠条件。扩展关系使得系统能够灵活应对不同场景,而不必在每个基本用例中硬编码所有可能的特殊情况。 面向对象方法的发展历程: 从1967年的Simula开始,面向对象编程逐渐发展,经历了OBJECT、LISKOV、ADT、CLU、Smalltalk、C++、Java等语言和技术的演变。随着UML(统一建模语言)的出现,以及Grady Booch、Ivar Jacobson、Jim Rumbaugh等人的贡献,面向对象方法在软件工程中的应用越来越广泛。此外,XML、Web服务等现代技术也进一步推动了面向对象思想在分布式系统和网络通信中的应用。 引入面向对象方法的主要动机在于提高软件开发的效率、可靠性和可维护性,以及实现问题域与软件设计的直接映射。与过程化方法相比,面向对象方法更强调数据和功能的结合,使得分析和实现之间的界限模糊,有利于减少复杂性,增强可扩展性和可重用性。同时,面向对象方法使得软件设计更贴近人类的思维方式,更容易理解和解决问题。