при разработке моего API я думаю о том, как бы я хотел смоделировать следующее поведение.
вариант 1 кажется более логичным, но вместе с этим приходит применение инвариантов, таких как проверка, действительно ли электронная таблица принадлежит книге.
вариант 2 кажется странным, электронная таблица знает, как удалить себя, но на самом деле электронная таблица имеет ссылку на свою родительскую рабочую книгу и может делегировать вызов непосредственно ему.
или это действительно недопустимый случай, поскольку рабочая книга должна была бы проверить ее электронную таблицу, несмотря ни на что ?? мысли?
Workbook wb = new Workbook("Finances");
Spreadsheet ss = wb.CreateSpreadsheet("Bob's");
// option 1:
wb.RemoveSheet(ss);
// option 2:
ss.RemoveFromWorkbook();
Спасибо всем