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)