C嵌入式编程设计模式:https://download.csdn.net/download/qq_39030013/85126644
中文版翻译劝退,建议直接肝英文版


前言

C语言没有名字空间,类的概念。除了以自然的文件作为区域分割,大部分的方法和变量都散乱地分布在广阔的全局空间内。作为一门面向对象的语言,这意味着更快的效率,但对于可读性却是巨大的挑战。因此需要面向对象的思想组织数据和函数,达到“高内聚,低耦合”的效果。
UML类图是OOP的表述方式,虽然C语言面向过程,但也可以通过某些方式面向对象编程。


一、定义

1.类(class)

类由数据元素(属性attribute)和作用于他们的方法(方法operation)组成。C语言中使用包含属性的结构体实现。

2.实例(instance)

实例是定义类的结构体类型的变量。

3.接口(interface)

接口与人机接口中接口意义并不相同,指的是一组需要被实现的方法,表示一种功能。接口没有属性,也无法直接被实例化,需要由其他类实现具体功能。

3.属性(attribute)

类所拥有的变量。

4.方法(operation)

类中操作属性的函数。由于C语言结构体不能有函数变量,因此将函数的方法命名为<Class Name>_<Operation Name>,并将函数第一个参数设置为const <Class Name>* me。
也可使用函数指针将方法地址储存在结构体中,使它更像一个类。

5.事件接收(Event Reception)

一种异步调用的特殊方法,接收事件来改变类中状态机状态。

6.注释(Comment)

图形化文本注释。

二、关系

1.泛化(Generalization)

泛化表达“是更具体的一种”的关系,超类(更抽象一般)的特性,属性,方法等都被子类(更具体)继承。

2.实现(Realization)

实现指的是接口的功能被某个具体的类实现。

3.聚合(Aggregation)

聚合表示一种很弱的整体包含的关系,不负责被包含对象的创建和销毁。

4.组合(Aggregation)

组合表示一种很强的整体包含的关系,负责被包含对象的创建和销毁。

5.依赖(Dependency)

依赖表示一种普通的使用关系。比如类方法参数的类型。

总结

关系紧密程度:
泛化=实现>组合>聚合>依赖
盗了一张图(https://www.cnblogs.com/pangjianxin/p/7877868.html)
ULM类图

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐