在这一段,作者提到:每个接口都由一个可编程的部分和一个语义部分组合。可编程的部分由接口中的数据类型和其他属性构成,编译器能强制性的要求他们。而语义部分则由“本接口将会被怎样使用”的假定组成,而这些是无法通过编译器来强制实施的。
我最近用Qt写业务,感觉上面这句话单独理解很容易,但是结合项目想一下,不知道怎么下手。怎么将业务接口转换为编程接口呢?
在这一段,作者提到:每个接口都由一个可编程的部分和一个语义部分组合。可编程的部分由接口中的数据类型和其他属性构成,编译器能强制性的要求他们。而语义部分则由“本接口将会被怎样使用”的假定组成,而这些是无法通过编译器来强制实施的。
我最近用Qt写业务,感觉上面这句话单独理解很容易,但是结合项目想一下,不知道怎么下手。怎么将业务接口转换为编程接口呢?
每个函数(每个接口),都由一个类型部分(可编程的部分)和函数体内容(一个语义部分组合)。
类型部分(可编程的部分)由接口中的数据类型和其他属性(比如额外 this 参数)构成,编译器能强制性的要求他们。
而函数体内容,语义部分则由“本接口将会被怎样使用”的假定组成,而这些是无法通过编译器来强制实施的。(意思就是,编辑器不知道你的业务逻辑设计)
总体来说,就是编译器能知道你的类型,并帮你检测,但不知道你要做什么,以及不知道运行时的错误。
1 回答1.6k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
4 回答570 阅读
1.3k 阅读
1 回答934 阅读
1.2k 阅读
751 阅读
这里的意思是说,尽量让接口本身能够表达其功能和用法,而不是依赖于注释或文档来阐述接口的语义。一个好的接口应该是自解释的,让使用者能够通过阅读代码就能理解接口的作用和用法。这样可以提高代码的可读性、可维护性和易用性。
在实际项目中,要将业务接口转换为编程接口,你可以从以下几个方面着手:
使用有意义的命名:给函数、变量和类使用有意义的命名,使得他们能够传达出其功能和用途。例如,calculateTotalPrice() 比 calcTP() 更具可读性。
定义清晰的输入输出:让接口的输入和输出都有明确的数据类型和格式。这样使用者在调用接口时就可以清楚地知道应该如何传递参数以及如何处理返回值。
提供默认值和错误处理:为参数提供合理的默认值,使得接口易于使用。同时,对于可能出错的情况,提供错误处理机制,如抛出异常或返回错误码,以便使用者能够处理这些错误情况。
遵循“单一职责原则”:让每个接口只负责一个功能,不要让一个接口负责多个功能。这样可以让接口更加简洁,易于理解和维护。
封装实现细节:将接口的实现细节封装在类的内部,只暴露必要的接口给外部。这样可以降低接口之间的耦合,让接口更加稳定和易于维护。