7

SRP ( PDF版; HTML版) は次のように述べています。

クラスを変更する理由は複数であってはなりません

Outlookのカレンダーイベントウィンドウを見ると、「保存して閉じる」ボタンがあります。

代替テキスト

そのため、保存または閉じるのいずれかまたは両方の機能が変更された場合、そのボタンも変更する必要があります。明らかに SRP に違反しています。この機能は、ほとんどのユーザーが予定をカレンダーに保存するときに行うことを期待

しているため 、時間の節約と便利さの両方を実現します。

しかし今、私の質問は、機能を Outlook で使用可能にする必要がある場合以外に、SRP に違反するのはどのような場合ですか?

4

1 に答える 1

23

SRP は UI には適用されません。ボタンは「保存して閉じる」と呼ばれていますが、保存および閉じる機能を処理するために、2 つの別々のメソッドまたはタイプが間違いなく存在する可能性があることに注意してください。ボタンは、これら 2 つの別個の機能を単に結び付けます。

SRP に違反する必要があると感じた場合は、アプローチを再評価する必要があります。すべての SRP 違反は、2 つの部分の構成によって複合機能を公開する新しいメソッドまたは型にリファクタリングできます。

于 2009-04-02T14:08:28.007 に答える