在设计api时,我正在考虑如何对以下行为建模。
选项1似乎更符合逻辑,但随之而来的是执行不变量,例如检查电子表格是否实际属于工作簿。
选项2看起来很奇怪--电子表格知道如何删除自己,但实际上电子表格有一个对其父工作簿的引用,并且可以将调用直接委托给他。
或者这真的不是一个有效的案例,因为工作簿无论如何都需要验证它的电子表格吗?有什么想法?
Workbook wb = new Workbook("Finances");
Spreadsheet ss = wb.CreateSpreadsheet("Bob's");
// option 1:
wb.RemoveSheet(ss);
// option 2:
ss.RemoveFromWorkbook();谢谢大家
发布于 2011-09-02 18:24:28
我认为使用选项1更好,因为每次您需要从某个容器中删除某个子实体时,首先要引用容器,然后才会搜索实体本身中的一些成员。
发布于 2011-09-02 18:24:55
我将使用选项1,将工作簿看作是一个集合或可枚举的。与任何集合一样,工作簿的部分工作是管理其中的项。从工作簿中添加和删除工作表是工作簿的责任,而不是工作表的责任。
发布于 2011-09-02 18:24:57
我会亲自为option 1工作,因为工作簿包含工作表,所以它是某种容器。因此,要从工作表中删除工作表,使用workbook对象是合乎逻辑的,也是更自然的IMHO。
https://stackoverflow.com/questions/7287678
复制相似问题