「デザインモード4」の観察、組み合わせ、フライウェイトモード

1.8オブザーバーモード-オブザーバー(重要)

複数のオブザーバーが実装できるオブザーバーインターフェイスを定義します。オブザーバーは、多くの場合、責任の連鎖と一緒に使用されます。オブザーバーは、責任の連鎖の一部と見なすことができます。

  • 一般的なイベントは、キーボードイベント、マウスイベントなど、使用されるオブザーバーモードです。
  • イベントソースオブジェクト、オブザーバー

1.8.1春のAOP

  • SpringのAopはオブザーバーパターンの実装として使用でき、この側面を観察しています

1.8.2キーボードモニター

  • キーボードリスナーなどの多くのイベントは、オブザーバーモードでもキーボードイベントを監視するために使用されます。
  • 要約:オブザーバーまたはリッスンナーまたはフックまたはコールバックは基本的にオブザーバーモードです

1.9組み合わせモード-複合

  • 組織構造、組織ツリー、ツリー構造として一般的に使用されます
  • たとえば、ルートディレクトリの下にいくつかの第1レベルのサブディレクトリがあり、サブディレクトリの下にサブディレクトリがあります。

1.10フライウェイトモデル-フライウェイト

キーボードなどの単語などの入力ツールで一般的に使用されるオブジェクトを再利用します。したがって、Flyweightがない場合はどうなるか、タップするたびにAオブジェクトが生成されます。Flyweightモードは、A〜Zを事前に保存してプールに入れます。共有メタデータとして

1.10.1接続プール、スレッドプール:プール

元のモデルを楽しむために使用される接続プール、スレッドプール

1.10.2 Javaの文字列

Javaの文字列は文字列定数プールに配置されます

public static void main(String[] args) {
    String s1 = "abc";
    String s2 = "abc";
    String s3 = new String("abc");
    String s4 = new String("abc");
    
    // true
    System.out.println(s1 == s2);
    // false
    System.out.println(s1 == s3);
    // false
    System.out.println(s3 == s4);
    // true
    System.out.println(s3.intern == s1);
    // true
    System.out.println(s.intern == s4.intern);
}

説明:
s1 == s2は、文字列定数プールにすでに「abc」
があるためです。新しい操作がメモリを再割り当てしたため、同じs3 == s4が使用され、メモリアドレスが異なるため、false
s3.intern == s1は、 s3.internはs3に対応する定数プール参照を参照します。これは、s3がメモリを開くが、ポイントされた定数も定数プールから取得され、新しい「abc」が作成されないためです。

1.10.3フライウェイトモデルと組み合わせモデル

Fly yuanのメタオブジェクトを別のメタオブジェクトに組み合わせることができるため、組み合わせと組み合わせることができます。

おすすめ

転載: www.cnblogs.com/darope/p/12731911.html