Design mode PHP5 implementation ---- Observer

xiaoxiao2021-03-06  42

* /

/ *** An abstract theme interface is an observer * / interface subject {public function attach; public function details (Observer $ OBSERVER); public function notifyobservers ();}

/ * *** Specifically the observed real interface * / class MySubject implements Subject {private $ observers = array (); public function attach (Observer $ observer) {$ this-> observers [] = $ observer;} public function Detach (Observer $ OBSERVER) {$ Key = Array_Search ($ OBSERVER, $ THIS-> OBSERVERVERS); if (false! = $ key) {unset ($ THIS-> Observers [$ key]);}} public function notifyobservers ) {IF ($ OBSERVER INSTANCEOF OBSERVER) {$ OBSERVER-> Update ();}}} / ** * Number of observer * / public function getCountobservers () {Return SizeOf ($ this-> observers);}}

/ *** Observer interface * / interface observer {public function update ();}

/ *** Specific viewer, used to get the subject's notification * / class myobserver imports observer {private $ ID = null; public function __construct () {$ this-> id = UNIQID ();} public function update () { Echo "Received Notice!"; Echo $ this-> ID; Echo "
/ R / N";}}

$ OBSERVER1 = New Myobserver (1); $ OBSERVER2 = New Myobserver (2); $ OBSERVER3 = New MYOBSERVER (3);

$ Subject = new mysubject (); $ subject-> attach ($ OBSERVER1); $ SUBJECT-> Attach ($ OBSERVER2); $ SUBJECT-> Attach ($ OBSERVER3); Echo "Observer total:" $ subject-> GetCountobServers (). "
/ r / n";

$ subject-> notifyobservers (); echo "/ r / n";

?>

转载请注明原文地址:https://www.9cbs.com/read-55048.html

New Post(0)