UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它使用图形符号和文本来描述软件系统的结构、行为和交互。在面向对象编程中,UML被广泛应用于软件系统的设计和分析阶段。本文将总结UML基础与应用之面向对象的重要概念和常用图形符号。
对象可以是物理实体、概念实体、软件实体,具有状态(静态信息 属性)、行为(动态)、标识(名字)行为反映的是一个对象将如何响应其他对象。
类是对一组具有相同属性、行为、和语义的对象的描述。一个对象是一个类的实例。
类的表示
说明:第一行是类的名称,第二行是类的属性,第三行是类的方法,属性和方法可以省略。如图
类和对象的关系
类是对象的抽象定义,它定义了属性和方法,提供了一个创建对象的模板
属性:描述的是对象静态部分
操作:通过操作可以读取、修改属性的值
接口
多态:不同对象得到同一消息时,产生不同行为。
组件:一个组件可以是源程序、运行时动态库、可执行程序
包:
包的创建就是将源程序文件中的接口和类纳入指定的包,对包进行分类管理
在项目中,我们要用到别的类的时候,我们可以把之前写好的类打成一个包进行引用,方便我们复用
子系统
对象之间的关系
关联:(聚合、组合)、依赖、泛化、实现、关联
面向对象的语言特点:继承、多态、封装
面向对象的基本原则:抽象、封装、模块性、层次性
抽象:抽象出对象,得出有哪些类
封装:把静态信息和动态信息封装成一个整体,做到一部分的信息隐藏(对客户隐藏实现,客户仅仅看到接口)
层次性
面向对象编程(OOP) | 面向过程编程(POP) | |
---|---|---|
设计思想 | 以对象为中心,将问题分解为相互关联的对象和它们的交互 | 以过程为中心,将问题分解为一系列的步骤和函数调用 |
主要组成 | 类、对象、方法、属性等 | 函数、变量、数据结构等 |
封装性 | 支持封装,将数据和操作封装在对象中,隐藏内部实现细节 | 不强制要求封装,较少对数据进行隐藏或限制访问 |
继承性 | 支持继承,允许创建新的类从现有类派生,并继承其属性和方法 | 不直接支持继承,功能通过函数和模块复用来实现 |
多态性 | 支持多态,允许在父类引用中使用子类对象,实现动态行为 | 较少直接支持多态,通常通过函数重载来实现 |
数据处理 | 将数据和操作封装在对象中,通过方法调用处理数据 | 通过函数来处理数据,传递参数并返回结果 |
代码结构 | 主要由对象和对象之间的交互组成 | 主要由函数和函数之间的调用组成 |
代码复用 | 通过继承和组合机制实现代码的重用 | 通过模块化和函数调用来实现代码的重用 |
异常处理 | 支持异常处理机制,可以捕获和处理异常 | 通常使用错误码或返回值进行错误处理 |
可扩展性 | 支持模块化开发,易于扩展新的对象和类 | 可以通过添加过程和修改函数来实现功能的扩展 |
UML是一种非常有用的面向对象建模语言,可以帮助开发人员更好地理解和设计软件系统。通过学习和应用UML基础概念和常用图形符号,可以更好地进行软件系统的设计、分析和测试。
总而言之,UML是一种强大的面向对象建模语言,通过提供各种图表和符号,帮助开发人员更好地理解、设计和交流软件系统。通过充分理解UML基础概念和应用,我们能够更高效地进行软件开发,并保证系统的可靠性和可维护性。