Vì vậy, tôi đã có một giải pháp chứa một vài dự án lớn, mà tôi đang cố gắng chia nhỏ thành các dự án nhỏ hơn với những trách nhiệm riêng biệt hơn. Đây là một trò chơi, nhưng tôi chủ yếu là một nhà phát triển LOB và tôi nghĩ rằng các nguyên tắc có thể phổ biến, và tôi nghĩ tôi có thể học được điều gì đó ở đây.
Sự phụ thuộc trong một số đối tượng hơi quá chặt chẽ với nhau và tôi hy vọng sẽ được giúp đỡ về cách gỡ rối chúng. Hoặc có thể là một số kiểu mẫu hoặc trừu tượng có thể khiến chúng dễ quản lý hơn.
Ares.Core.World có các lớp trong đó như Sinh vật, Vật phẩm, v.v. Tất cả chúng đều kế thừa từ Thực thể, nó nhận biết được ô nào trên bản đồ mà nó tồn tại. Nó hoàn thành điều này bằng cách giữ một tham chiếu đến Ares.Core.UI.MapControls.MapCell ... Và bạn có thể thấy rằng các dây đã bị bắt chéo.
Ares.Core.UI.MapControls chứa Bản đồ và MapCell, mỗi bản đồ đều chứa Danh sách các sinh vật và vật phẩm mà chúng chứa. MapCell cũng kế thừa từ Ares.Core.World.Entity vì nó đã giải quyết một số vấn đề ban đầu một cách rất thanh lịch - ví dụ: tất cả các Đối tượng đều có khoảng không quảng cáo.
Tôi muốn tìm cách tách giao diện người dùng và Thế giới thành các dự án riêng biệt ( Ares.World và Ares.UI ) vì giao diện người dùng và thế giới bao quát có thể là mối quan tâm riêng biệt. Nhưng như bạn có thể thấy, hiện tại hai dự án sẽ cần phải tham chiếu lẫn nhau và các tham chiếu vòng tròn không được phép.
Tôi tự hỏi liệu có bất kỳ mẫu kiến trúc nào có thể giúp ích trong tình huống này. Cảm ơn!