따라서 객체의 상태가 변경되면 그에 의존하는 모든 객체에 알림을 받고 그에 따라 변경됩니다.
관찰자 패턴을 구현하는 방법에는 여러 가지가 있습니다.이 패턴에는 관찰자와 대상이 관찰되는 두 가지 역할이 포함되어야합니다. 관찰자와 관찰자 사이에는 "관찰"의 논리적 관계가 있습니다. 관찰자가 변경되면 관찰자는 그러한 변경 사항을 관찰하고 해당 변경 사항을 발행합니다.
/*** 옵저버 인터페이스 : 관찰자, 관찰자 모드를 사용해야하는 클래스이 인터페이스를 구현해야합니다*/public interface observer {public void update (object obj);} /*** 옵저버 (일반적으로 추상 클래스, 확장에 편리) : 선언 방법, 일부 변경이 발생하고 변경 사항에 대해 통지합니다. */public interface beobserved {public void addobserver (Observer Obs); // 옵저버 객체 추가 공개 void void removeObserver (Observer Obs); // 옵저버 객체 public void notifyobservers (문자열 변경); /*** 대상 관찰자 : 관찰자의 인터페이스를 구현하고 관찰자 객체에서 해당 작업을 수행합니다*/공개 클래스 ConcreteWatched emplesment {// 옵저버 객체 컬렉션 개인 목록 <Secterver> list = new ArrayList <ObserrayList> (); @override public void addobserver (Observer Obs) // 옵저버 추가 {if (! list.contains (OBS)) {list.add (OBS); }} @override public void removeObserver (Observer Obs) // 관찰자는 관찰자에게 관찰을 취소하고 컨테이너에서 관찰자를 제거하도록 지시합니다. }} @override public void notifyobservers (String Change) {// 객체와 호출 메소드를 개별적으로 통과하여 (Observer Obs : List) {Obs.upDate (Change); }}} /*** 관찰 된 (특정 관찰자)*/public class 특정 워치어는 관찰자를 구현합니다 {@override public void update (object obj) {system.out.println (obj.toString ()); // 변경}}/*** test Code* {public class void main (args). ConcreteWatched (); OBSERVER OBS1 = 새로운 특정 워치어 (); OBSERVER OBS2 = 새로운 특정 워치 (); OBSERVER OBS3 = 새로운 특정 워치 (); bobs.addobserver (Obs1); // 옵저버 객체 Bobs.addoBserver (OBS2); bobs.addobserver (Obs3); bobs.notifyobservers ( "*** 알림 ***"); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------마지막으로 결과를 인쇄하십시오.
위의 내용은이 기사에 관한 모든 것입니다. 모든 사람들이 Java 프로그래밍을 배우는 것이 도움이되기를 바랍니다.