内容参考于《抽象接口技术和组件开发规范及其思想》
五.抽象接口与依赖反转
基于多态可以实现“与硬件无关”的应用程序。 在 C 编程中,多态的核心解决方法是充分利用“函数指针”,抽象接口就是只包含函数指针的类, 它们非常抽象,不包含任何具体的实现,仅定义了函数的调用规则。应用不在依赖具体的实现,根据接口去编写应用。实际上之前的综合示例最后一个示例已经完全体现。
1. 示例:
时间示例
接口与应用程序(与底层无关)
itime.h
struct tm
{
int tm_sec; // 秒, 0 ~59
int tm_min; // 分, 0 ~ 59
int tm_hour; // 小时, 0 ~ 23
int tm_mday; // 日期, 1 ~ 31
int tm_mon; // 月份, 0 ~ 11
int tm_year; // 年
int tm_wday; // 星期
int tm_yday; // 天数
int tm_isdst; // 夏令时(一般不使用,值为 0 或-1)
};
struct itime
{
int (*pfn_time_get)(struct itime *p_this, struct tm *p_tm);
int (*pfn_time_set)(struct itime *p_this, struct tm *p_tm);
}