gpt4 book ai didi

c++ - "program to interfaces"是C++项目中常见的设计原则吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:46 25 4
gpt4 key购买 nike

最近几天我读了很多关于“程序到接口(interface)”和“控制反转”的内容。主要是在 Java 语言的上下文中。我的问题是这是否也是 C++ 开发中的常见做法。有什么好处?有什么缺点?

是否值得申请小型项目(例如 15-20 节课)?

最佳答案

是的,这很常见,但不是您所期望的形式。

在 Java 中,接口(interface)是形式化和显式的,针对接口(interface)编程意味着实现特定的接口(interface)

在 C++ 中,有时也会这样做(尽管使用抽象基类而不是接口(interface)),但在 C++ 中,另一种常见的做法是使用模板,其中接口(interface)是隐式的。

例如,标准库算法都使用迭代器“接口(interface)”,只是代码中从未定义过这样的接口(interface)。这是一个约定,仅此而已。

公开某些功能需要有效的迭代器,因此,公开此功能的任何类型都是迭代器。但它不必像在 Java 中那样实现某种假设的 IIterator 接口(interface)。

这在用户代码中很常见。您经常编写代码来接受模板参数,该参数可能是有效 的任何内容。您通过使用该类型隐式定义了一个接口(interface):您对它的任何要求都成为该隐式接口(interface)的一部分,类型必须满足该接口(interface)才能使用。

接口(interface)从未在代码中形式化,但您仍在使用它并针对它进行编程。

关于c++ - "program to interfaces"是C++项目中常见的设计原则吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4037751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com