Lý do gọi cho TileHandler trong ngữ cảnh tĩnh không phải là thiết kế tốt nhất có thể, là vì nó kết hợp các thành phần trong thiết kế của bạn mà có thể tách rời.
Nếu bạn chọn có nhiều hơn một TileHandler trong tương lai, bạn sẽ phải làm rất nhiều việc để thích ứng với sự thay đổi này.
Nếu bạn chọn loại bỏ TileHandler, bạn sẽ phải thực hiện rất nhiều công việc để thích ứng với sự thay đổi này.
Giả sử bạn xây dựng một cấp độ / vùng khác nhau trong tương lai, xử lý các ô theo cách khác với Ngói hiện tại của bạn. Sau đó, bạn cần phải có một cách để xác định phương thức xếp gạch để sử dụng hoặc bạn cần gọi một trình xử lý khác.
Nếu TileHandler được truyền dưới dạng tham số cho các đối tượng sử dụng nó, thì bạn có thể chỉ cần chuyển một cái khác vào lần sau hoặc đặt một trình xử lý ô khác cho các đối tượng sử dụng nó sau này.
Cá nhân, tôi truy cập nhiều thứ trong các trò chơi XNA của mình từ ngữ cảnh tĩnh và cho rằng tôi sẽ không bao giờ có nhiều hơn một trong số chúng.
Nếu bạn muốn có thể sử dụng lại mã công cụ trò chơi của mình trong trò chơi tiếp theo, bạn có thể sẽ phải viết lại nhiều nội dung mà bạn hiện đang viết dưới dạng tĩnh.
Nói ngắn gọn:
Có lợi cho việc không sử dụng bối cảnh tĩnh:
Truyền các đối tượng dưới dạng tham số càng nhiều càng tốt tách các yếu tố trò chơi và cho phép bạn sửa đổi / tái sử dụng chúng cho các dự án hiện tại hoặc tương lai dễ dàng hơn. Nó cũng cho phép bạn quản lý sự phức tạp của số lượng lớn mã dễ dàng hơn một chút (nghĩ rằng có hàng trăm trình quản lý tĩnh trong lớp trò chơi của bạn, trong một trò chơi lớn).
Có lợi cho bối cảnh tĩnh:
Khai báo và truy cập các đối tượng từ ngữ cảnh tĩnh giúp viết các trò chơi nhỏ không cần hàng trăm người quản lý tĩnh dễ dàng hơn. Đơn giản hóa nhiều phương thức và hàm tạo bằng cách không yêu cầu một hoặc nhiều tham số bổ sung thay vào đó được truy cập tĩnh.