API を設計しているときに、次の動作をどのようにモデル化するかを考えています。
オプション 1 はより論理的に見えますが、スプレッドシートが実際にワークブックに属しているかどうかを確認するなどの不変条件を適用する必要があります。
オプション 2 は奇妙に思えますが、スプレッドシートは自分自身を削除する方法を知っていますが、実際には、スプレッドシートには親ワークブックへの参照があり、呼び出しを直接彼に委任できます。
それとも、ワークブックは何があってもスプレッドシートを検証する必要があるため、これは本当に有効なケースではありませんか?? 考え?
Workbook wb = new Workbook("Finances");
Spreadsheet ss = wb.CreateSpreadsheet("Bob's");
// option 1:
wb.RemoveSheet(ss);
// option 2:
ss.RemoveFromWorkbook();
みんなありがとう