gpt4 book ai didi

c++ - 类接口(interface) : Basic or Complex?

转载 作者:太空狗 更新时间:2023-10-29 20:18:04 24 4
gpt4 key购买 nike

为了娱乐和教育,我正在编写一个容器类。以前在编写容器类时,我仅限于使用一些非常基本的方法:GetValueSetValueGetSizeResize。我这样做是为了避免“代码面条式”,这样我的类就更容易调试了。

但是,我想到类的用户可能想要做的不仅仅是简单的替换。所以我又加了几个方法:

void Replace(const std::size_t Start, const std::size_t End, const T Value);
void Replace(const std::size_t Start, const std::size_t End, const MyClass Other);
void Insert(const std::size_t Index, const T Value);
void Insert(const std::size_t Index, const MyClass Other);
void Delete(const std::size_t Index);
void Delete(const std::size_t Start, const std::size_t End);

一般来说,类是否应该只提供最基本的接口(interface),让类的用户自己开发函数来完成复杂的事情?还是应该以可维护性为代价内置复杂的东西?

最佳答案

类应该只提供一个基本/最小的成员函数接口(interface)(最好没有数据!)。然后,您可以将便捷方法添加为非好友非成员 函数。然而,根据接口(interface)原则,这些函数仍然是类接口(interface)的一部分。

您已经指出了这样做的主要原因:它使类更易于维护。此外,实现您的“便利”方法部分将作为一个很好的测试,看看您的界面是否足够好。

请注意,容器的成员函数部分通常应该非常通用且功能强大,并且除了维护类不变性之外,不关心太多。

据我所知,这是关于这个主题的最现代的观点。它在 Scott Meyer 的“Effective C++”(最新的第 3 版)以及 Sutter 和 Alexandrescu 的“C++ 编码标准”中得到了显着提倡。

关于c++ - 类接口(interface) : Basic or Complex?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5326525/

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