Package Com.modle;import java.util.vector;import org.omg.corba.object_not_exist;/** * Viewer mode * @author k560 * *//* Viewer interface */ Public interface Observer {/* * observed behavior after observed behavior */void dosome (); }/* Observer 1*/class Observer1 implements observer{@Overridepublic void Dosome () {System.out.println ("observed by observer 1");}} /* Observer 2*/class Observer2 implements observer{@Overridepublic void Dosome () {System.out.println ("observed by Observer 2");}} /* Abstract The Observer */abstract class subject{vector<observer> observers=new vector<observer> ();/* Add observer */public Void Addobserver (Observer Observer) {observers.add (Observer);} /* Delete spectator */public void Removeobserver (Observer Observer) {observers.remove (Observer);} /* Notify all observers */protected void Notifyallobserver () {for (Observer observer:observers) {observer.dosome ()}} protected abstract void Show (); Class Subjecta extends subject{@Overrideprotected void Show () {SYSTEM.OUT.PRINTLN ("Observer acted"); This.notifyallobserver ( );}} public class Testobserver{public static void Main (string[] args) {/* Create the Observer */SUBJECT subject=new subjecta ();/* Add observer */observer observer1=new Observer1 (); Observer observer2=new Observer2 (); Subject.addobserver (Observer1); Subject.addobserver (observer2);/* Observer execution Method */subject.show ();/* Delete Observer 1*/ Subject.removeobserver (Observer1); Subject.show ();}}
(Behavioral Pattern III) Observer pattern