数日前に初めて OOP の原則を知ったばかりだったので、私は何年もの間、「教えて、尋ねるな」という OOP の原則を見落としていたに違いありません。
しかし、コンテキストは、ASP.NET Web フォーム ページからデータ/ビジネス オブジェクトに移動された検証コードについての議論であり、「Validate()」メソッドはなく、それ自体が検証と検証を行う save メソッドだけでした。 (おそらく)例外を発生させました。なぜこれがこのように設計されたのかを尋ねたところ、聞いたことのない OOP の「言うな、聞くな」という原則に導かれたので、一緒に Google を調べたところ、すぐに教えてもらいました。;)
データがユーザーから引き渡され、処理および/または収集されるビジネス層に渡される前に、データをスクラブするべきではありませんか? その逆ではありませんか? これがどのように良いデザインになるのか、私は混乱しています。
「教えて、尋ねるな」というルールは、ターゲット オブジェクトの状態についてターゲット オブジェクトに尋ねてはならないという考えに関連しているように思われます。この原則は、対象物。