Các lớp "Manager" có thể có vấn đề vì nhiều lý do. Hai lý do chính có xu hướng là:
- tên không rõ ràng (những gì thực sự "quản lý" đòi hỏi, và nó luôn luôn giống nhau cho mọi loại điều được quản lý?)
- họ có xu hướng hướng tới các nhóm chức năng vi phạm nguyên tắc trách nhiệm duy nhất (nghĩa là một loại nên làm một việc)
Thường thì một trong những lý do đó gây ra hoặc ngụ ý khác.
Những vấn đề đó là những điều tốt để ghi nhớ, nhưng đừng để chúng làm tê liệt khả năng thực sự tạo ra trò chơi của bạn . Cuối cùng, không ai quan tâm đến những gì các lớp học của bạn được gọi hoặc những gì họ làm. Họ sẽ quan tâm đến trò chơi của bạn.
Thông thường khá dễ dàng để tách hầu hết các "nhà quản lý" thành hai phần:
phần lưu trữ các đối tượng thực tế và cung cấp quyền truy cập vào chúng (mà bạn có thể gọi là "kho", "kho", "cơ sở dữ liệu", "bộ đệm" hoặc nhiều thứ khác. Đây là loại thường chịu trách nhiệm trong suốt vòng đời của các đối tượng, nghĩa là khi một đối tượng bị xóa khỏi hoặc không còn được chứa bởi một thể hiện của loại này thì nó không còn tồn tại.
phần xử lý các đối tượng thực tế và thực hiện một số công việc trên chúng. Nó có thể cập nhật các đối tượng đó (sau đó là "trình cập nhật" hoặc "mô phỏng") hoặc nó có thể vẽ chúng (sau đó là "ngăn kéo" hoặc "trình kết xuất"). Hoặc nó có thể làm một cái gì đó khác với họ; điều quan trọng là đặt tên theo mục đích chính của nó. Bạn thường đưa ra các thể hiện của loại này một thể hiện hoặc tham chiếu đến các thể hiện của loại đầu tiên (loại chỉ xử lý vòng đời của các đối tượng).
Một lập luận hợp lý có thể được đưa ra là tên của loại đầu tiên có thể bao gồm trình quản lý (vì nó "quản lý vòng đời của" một số đối tượng). Thế giới sẽ không kết thúc nếu bạn đặt tên cho loại của mình như vậy, mặc dù bạn có thể cần phải đưa ra các phản ứng giật đầu gối ở dạng "không gọi người quản lý" thường xuyên hơn, vì vậy bạn có thể muốn tránh điều đó chỉ vì điều đó.