首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C++中设计由多个人使用的类时,我应该使用API/ABC吗?

在C++中设计由多个人使用的类时,我应该使用API/ABC吗?
EN

Stack Overflow用户
提问于 2010-07-26 17:31:45
回答 2查看 89关注 0票数 1

我将要添加一个类X,它将用于我之前设计的三个类(A、B和C)。

新的类X将包含新功能的数据和函数,并为使用它隐藏较低层的类提供服务。问题是A、B和C使用X类的方式非常不同,也就是说,使用X类的不同函数。

我的问题是,我是否应该为新类X提供一个应用程序接口(或C++中的抽象基类)。如果应该,API应该是每个X类还是每个A、B和C类?我在某处读到过,API有时与调用者的关系比实现它的类更密切。如果我为每个调用者提供一个API,API将只包含特定调用者所需的函数。

或者我应该只创建一个普通的C++类,让调用者在A、B和C中使用X的公共函数的一个子集,尽管他们“从技术上”可以使用所有这些函数?类X的功能不太可能改变,也不需要创建类似于X的类。

如果我不是完全迷失在面向对象编程中,那么为类提供接口/API的一个原因是,如果您添加另一个子类,则使用该接口/API的代码不需要更改,因为调用者处理接口名称并使用动态绑定来解析正确的子类类型。

致以最好的问候,如果有任何不清楚的地方,请让我知道,我会尽快回答的。

谢谢,

托马斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-26 17:37:00

你确定所有这些函数都属于同一个类X吗?考虑将不同的功能分成不同的类:http://en.wikipedia.org/wiki/Low-Coupling_/_High-Cohesion_pattern

但是,如果不知道X的功能是什么,就很难进一步提供帮助。

票数 1
EN

Stack Overflow用户

发布于 2010-07-26 17:39:37

如果事情不太可能改变,那么可能不值得付出额外的努力。

但是,如果您决定这样做,问题是新的类是否会实现全部功能,还是只实现部分功能。例如,它们是否共享后端存储,因此所有内容都需要一次更新(在这种情况下,拆分没有意义),或者它们是否与完全独立的关注点相关,在这种情况下,拆分(如@GarethOwen所建议的)可能是可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3333636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档