JAVAベースのデザインパターンのObserverパターン

  • 入門

    多くの、一方の当事者の状態変化は、それに依存する場合、複数の当事者が通知され、自動的に更新されます - パブリッシュ/サブスクライブ・モデルとして知られているObserverパターンは、オブザーバーパターンは、オブジェクト間の依存関係を定義します。

  • クラス図

  

  • コード
パブリック インターフェースオブザーバ{
     公共 ボイド更新(文字情報)
} 

パブリック クラス StudentObserverが実装オブザーバー{
     プライベート文字列名を、
    プライベートTeacherSubject teacherSubject。

    公共StudentObserver(文字列名、TeacherSubject teacherSubject){
         この .nameの= 名前。
        この .teacherSubject = teacherSubject。
        teacherSubject.addObserver(この); 
    } 

    公共 ボイド更新(文字情報){ 
        System.out.printlnは(名前+ "得到作业:" + 情報)。
    } 
} 

パブリック インターフェイス件名{
     公共 ボイドaddObserver(観察者の観察者)
    公共 ボイドdeleteObserver(オブザーバーオブザーバー)。
    公共 ボイドnotifyObserver(); 
} 

パブリック クラス TeacherSubjectが実装サブジェクト{
     プライベートリスト<オブザーバー>オブザーバー= 新規のArrayList <オブザーバー> ();
    プライベート文字列情報。
    公共 ボイドaddObserver(観察者の観察者){ 
        observers.add(観察)。
    }

    公共 ボイドdeleteObserver(観察者の観察者){ 
        observers.remove(観察)。
    } 

    公共 ボイドnotifyObserver(){
         ための(観察者の観察者:
             観察者){ 
            observer.update(情報)。
        } 
    } 

    公共 ボイドsetHomeWork(文字情報){
         の.info = インフォメーション。
        System.out.println( "今天的作业是" + 情報)。
        この.notifyObserver(); 
    } 
} 

パブリック クラスメイン{
     公共 静的 ボイドメイン(文字列[]引数){ 
        TeacherSubject教師 = 新しいTeacherSubject()。
        StudentObserver zhangSan =  StudentObserver( "张三" 、先生)。
        StudentObserverリージ =  StudentObserver( "李四" 、先生)。
        StudentObserver WangWu =  StudentObserver( "王五" 、先生)。
        teacher.setHomeWork( "数据库课设" ); 
    } 
}

おすすめ

転載: www.cnblogs.com/hbsdljz/p/11130488.html
おすすめ