Luật Demeter (thực sự nên là đề xuất của Demeter) nói rằng bạn không nên "tiếp cận" một đối tượng để có được đối tượng con của họ. Nếu bạn, với tư cách là một khách hàng, cần thực hiện một số hoạt động không tầm thường, phần lớn thời gian mà mô hình miền bạn đang làm việc phải hỗ trợ hoạt động đó.Luật Demeter so với REST
REST về nguyên tắc là một hệ thống phân cấp câm của các đối tượng. Nó giống như một hệ thống tập tin của các tài nguyên/đối tượng, trong đó mỗi đối tượng có thể có các đối tượng con. Bạn hầu như luôn luôn đạt được thông qua với REST. Bạn có thể tùy ý xây dựng các loại đối tượng hỗn hợp theo quy ước bằng cách sử dụng các kỹ thuật REST và miễn là nhà cung cấp và khách hàng đồng ý với các hoạt động cấp cao hơn, bạn có thể tránh được việc tiếp cận.
Vì vậy, bạn cân bằng giữa REST và Demeter như thế nào? Dường như với tôi rằng họ không xung đột, bởi vì REST là tất cả về sự liên kết siêu lỏng đến mức mà nó là vô nghĩa cho nhà cung cấp để cố gắng dự đoán mọi nhu cầu của khách hàng, trong khi Demeter giả định rằng logic có thể di chuyển đến nơi tự nhiên nhất thông qua tái cấu trúc.
Tuy nhiên, bạn có thể lập luận rằng REST chỉ là khoảng cách dừng cho đến khi bạn hiểu khách hàng của mình tốt hơn. Là REST chỉ là một hack? Demeter không thực tế trong bất kỳ kịch bản máy chủ/khách hàng nào?
Đây là một quả táo và cam so sánh. REST là về việc xây dựng các hệ thống phân tán có thể mở rộng bằng cách sử dụng một giao diện thống nhất. Luật Demeter là về việc giảm sự ghép nối giữa các phần của một hệ thống. –
Bạn có đang nghĩ đến một tình huống mà máy khách xây dựng một URL cho một đối tượng con thay vì có URL con được gán cho nó không? Đó sẽ là một sự vi phạm, tôi nghĩ, nhưng không phải nếu URL là kết quả của một hoạt động phụ huynh. –