首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >API设计问题

API设计问题
EN

Stack Overflow用户
提问于 2011-09-02 18:20:37
回答 5查看 160关注 0票数 4

在设计api时,我正在考虑如何对以下行为建模。

选项1似乎更符合逻辑,但随之而来的是执行不变量,例如检查电子表格是否实际属于工作簿。

选项2看起来很奇怪--电子表格知道如何删除自己,但实际上电子表格有一个对其父工作簿的引用,并且可以将调用直接委托给他。

或者这真的不是一个有效的案例,因为工作簿无论如何都需要验证它的电子表格吗?有什么想法?

代码语言:javascript
运行
复制
Workbook wb = new Workbook("Finances");
Spreadsheet ss = wb.CreateSpreadsheet("Bob's");

// option 1:
wb.RemoveSheet(ss);

// option 2:
ss.RemoveFromWorkbook();

谢谢大家

EN

回答 5

Stack Overflow用户

发布于 2011-09-02 18:24:28

我认为使用选项1更好,因为每次您需要从某个容器中删除某个子实体时,首先要引用容器,然后才会搜索实体本身中的一些成员。

票数 1
EN

Stack Overflow用户

发布于 2011-09-02 18:24:55

我将使用选项1,将工作簿看作是一个集合或可枚举的。与任何集合一样,工作簿的部分工作是管理其中的项。从工作簿中添加和删除工作表是工作簿的责任,而不是工作表的责任。

票数 1
EN

Stack Overflow用户

发布于 2011-09-02 18:24:57

我会亲自为option 1工作,因为工作簿包含工作表,所以它是某种容器。因此,要从工作表中删除工作表,使用workbook对象是合乎逻辑的,也是更自然的IMHO。

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

https://stackoverflow.com/questions/7287678

复制
相关文章

相似问题

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