编程术语中implementation与definition的区别是什么?
定义(definition)与实现(implementation)的核心区别
此前已有讨论明确了声明和定义的差异,以下针对定义与实现的具体区别做进一步说明:
基础概念边界
- 定义(definition) 是编译语法层面的概念,核心作用是为标识符(变量、函数、类等)分配实际内存空间、补全标识符对应的完整实体内容。
举个C语言的函数示例:
函数声明(仅告知编译器函数的入参、返回值规则,不分配内存):int add(int a, int b);
函数定义(补全函数的完整代码结构,分配对应内存空间):int add(int a, int b) { return a + b; } - 实现(implementation) 是功能落地层面的概念,范畴比定义宽泛得多,指的是把抽象的接口约定、功能需求落地为可用代码的完整过程,不只包含代码定义,还覆盖逻辑设计、边界处理、性能优化、异常兼容等环节。
二者核心差异
我们可以用一个账号登录功能的开发场景直观区分二者:
- 声明环节:对外暴露头文件规则
int user_login(char* account, char* password);,明确调用时的入参、返回值要求- 定义环节:写完这个函数的基础代码结构,只要符合语法规则、能通过编译就算完成了定义
- 实现环节:除了写好基础定义,还要补全密码加密校验、错误码分类返回、登录日志埋点、多次失败锁定账号等所有符合业务要求的逻辑,才算完成了这个功能的实现
日常开发中很多人会把简单函数的定义直接叫做实现,是因为简单场景下定义就已经满足了功能的全部要求,二者看起来是重合的。但复杂场景下差异非常明显:定义只需要满足语法要求,而实现需要满足完整的功能需求。
内容的提问来源于stack exchange,提问作者T0maas
相关产品推荐
相关产品推荐

