加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 类接口:基本还是复杂?

发布时间:2020-12-16 09:33:23 所属栏目:百科 来源:网络整理
导读:我正在写一个充满乐趣和教育的容器类.以前在编写容器类时,我只限于几个非常基本的方法:GetValue,SetValue,GetSize和Resize.我这样做是为了避免“代码意大利面条”,所以我的课程将更容易调试. 但是,在我看来,类的用户可能想要做的不仅仅是简单的替换.所以我
我正在写一个充满乐趣和教育的容器类.以前在编写容器类时,我只限于几个非常基本的方法:GetValue,SetValue,GetSize和Resize.我这样做是为了避免“代码意大利面条”,所以我的课程将更容易调试.

但是,在我看来,类的用户可能想要做的不仅仅是简单的替换.所以我添加了一些方法:

void Replace(const std::size_t Start,const std::size_t End,const T Value);
void Replace(const std::size_t Start,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);

一般来说,类应该只提供最基本的接口,让类的用户自己做功能来做复杂的事情吗?或者是否应该以可维护性为代价内置复杂的东西?

解决方法

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

您已经为此命名了主要原因:它使类更容易维护.此外,实施“convienence”方法部分将是一个很好的测试,看看你的界面是否足够好.

请注意,容器的成员函数部分通常应该非常通用且功能强大,而不仅仅是维护类不变量.

据我所知,这是关于这个问题的最现代意见.它在Scott Meyer的“Effective C”(最近的第3版)以及Sutter和Alexandrescu的“C编码标准”中得到了突出的提倡.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读