[Design] Kompositionsfrage
-
David W schrieb:
Bekommst du sobald du das entsprechende Kleid anziehst
Hmmm ...
Wollt ihr übrigens noch eine Verkomplizierung des Designs? Die erstellen Räume können einer anderen Liste dazugefügt werden. Wenn sie aus dem Gebäude rausgelöscht werden, sollen sie ebenfalls aus der anderen Liste verschwinden. À la
ON DELETE CASCADE
Vorschlag:
public sealed class Room : IDisposable { public event EventHandler Disposed; public void Dispose() { var handler = this.Disposed; if(handler != null) { handler(this, new EventArgs()); } } } public class RoomCollection : IEnumerable<Room> { private List<Room> m_rooms; public Room AddNewRoom() { var room = new Room(); room.Disposed += this.OnRoomDisposed; m_rooms.Add(room); return room; } private void OnRoomDisposed(object sender, EventArgs e) { var room = (Room)sender; m_rooms.Remove(room); room.Disposed -= this.OnRoomDisposed; } }
...
Grüssli
-
Ja, wenn das auch noch dazukommt, dann macht die eigene Collection Sinn