Khi tôi đã có một cuộc thảo luận về thiết kế, liên quan đến mẫu lệnh. Đồng đẳng của tôi tuyên bố rằng một đối tượng lệnh không được trả lại trạng thái (thành công, không thành công và tại sao) sau khi phương thức .execute() được gọi. Lý do là bạn không nên quan tâm nếu lệnh được thực hiện hay không, bởi vì lệnh phải chứa không có trạng thái. Tuy nhiên, bạn phải kiểm tra sau lệnh gọi nếu lệnh có hiệu ứng mong đợi. Một điểm khác mà ông cho rằng trên Gang of Four, mẫu lệnh không trình bày trường hợp này (trạng thái trả về).mẫu lệnh trả về trạng thái
Tôi đã xác nhận điểm ngược lại. GoF không trình bày trường hợp này, nhưng một mô hình có thể được mô hình hóa theo nhu cầu của bạn. Nếu một lệnh không thành công, trình khách gọi phải nhận được bằng chứng về trạng thái và cuối cùng triển khai một phản ứng thích hợp. Bằng cách buộc khách hàng phải kiểm tra xem hành động đạt được thành công có dễ xảy ra lỗi và tạo mã trùng lặp hay không. Hơn nữa, có những trường hợp lệnh tạo ra một kết quả (ví dụ: một lệnh thêm một dòng vào một cốt truyện, bằng cách nào đó sẽ có id dòng để trả về máy khách) và giả vờ có các lệnh không có trạng thái có nghĩa là bạn phải "cá ra" định danh đối tượng mới từ mô hình dữ liệu. Cuối cùng, chúng tôi đã đạt được thỏa hiệp bằng cách không trả lại trạng thái nhưng vẫn giữ id của đối tượng mới được tạo trong đối tượng lệnh và ứng dụng hoạt động khá tốt, nhưng giờ đây tôi cũng tò mò muốn biết ý kiến của bạn.
Câu trả lời của tôi sẽ khá giống với điều này nếu Thomas không trả lời trước. Câu trả lời tốt. Một mẫu là một hướng dẫn, không phải là một quy tắc cứng nhắc và nhanh chóng. – Odd