Corak Pemerhati menangani keperluan untuk memberitahu set objek (pemerhati) secara automatik apabila keadaan objek lain (subjek) berubah. Ini berguna dalam senario di mana satu objek perlu sentiasa dikemas kini dengan perubahan dalam objek lain, seperti dalam sistem dipacu peristiwa atau sistem pemberitahuan.
Corak Pemerhati melibatkan dua komponen utama:
Subjek mengekalkan senarai pemerhati dan memberitahu mereka dengan memanggil kaedah kemas kini mereka apabila terdapat perubahan dalam keadaannya.
Contoh praktikal corak Pemerhati adalah dalam sistem pemberitahuan media sosial, di mana pengguna (pemerhati) dimaklumkan tentang aktiviti (subjek) rakan mereka, seperti siaran dan kemas kini status.
java // Observer Interface public interface Observer { void update(String message); } // Subject Interface public interface Subject { void registerObserver(Observer observer); void removeObserver(Observer observer); void notifyObservers(); } // Concrete Subject public class SocialMediaAccount implements Subject { private List<Observer> observers = new ArrayList<>(); private String statusUpdate; @Override public void registerObserver(Observer observer) { observers.add(observer); } @Override public void removeObserver(Observer observer) { observers.remove(observer); } @Override public void notifyObservers() { for (Observer observer : observers) { observer.update(statusUpdate); } } public void postUpdate(String status) { this.statusUpdate = status; notifyObservers(); } } // Concrete Observer public class Follower implements Observer { private String name; public Follower(String name) { this.name = name; } @Override public void update(String message) { System.out.println(name + " received update: " + message); } } // Client Code public class Client { public static void main(String[] args) { SocialMediaAccount account = new SocialMediaAccount(); Observer follower1 = new Follower("Alice"); Observer follower2 = new Follower("Bob"); account.registerObserver(follower1); account.registerObserver(follower2); account.postUpdate("Hello, followers!"); account.postUpdate("Check out my new post!"); account.removeObserver(follower1); account.postUpdate("Another update!"); } }
Atas ialah kandungan terperinci Memahami Corak Reka Bentuk Pemerhati di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!