0

私のシステムには、User クラスと LoginUser クラスの 2 つのクラスがあります。LoginUser は User の子です。User と LoginUser の 2 つのオブジェクト間で、さまざまな通信 (フレンド リクエスト、写真のリクエスト、フレンド リクエストの承認など) が可能です。LoginUser のメンバーシップに基づいて、さまざまなセキュリティ権限があり、それらの権限に基づいて、さまざまなメッセージが表示されます。

特定のシナリオに使用する必要がある設計パターンはどれですか? Mediator のデザイン パターンを使用することを考えていました。

4

1 に答える 1

1

これは実際には設計パターンではありませんが、特権とユーザー情報という 2 つの概念を分割します。

読みやすさの観点から、サブクラスを見ると、通常、相互に排他的なサブクラスが他にあると想定します。たとえば、Animal インターフェイスと MeatEater サブクラスが表示された場合、VeggieEater サブクラスが別の場所にあると想定します。LoginUser がサブクラスであり、すべての User が LoginUser であるという事実は、私には不自然に感じられます。

設計の観点から、LoginUser には 2 つの異なる責任があります。1
) ユーザー名、電子メール、友人などのユーザー レベルの情報を管理する
2) 権限を決定する

私はこれを壊そうとします。そのような

public class User { 
  // keep info in here 
  private String username;
  private String email;
}


public class Authorization {
   // this will determine access
   public Authorization(User user) { this.user = user; }

   public boolean isAccessAllowed(String someAction) { // ... }
}

このようなものは、明確な責任を分割します。

于 2012-08-21T16:42:18.143 に答える