观察者模式

Subject(被观察者)

package org.designPattern.obServer10;

import java.util.Observable;

public class BlogUser extends Observable {
    
    public void publishBlog(String articleTitle,String articleContent) {
        Article art = new Article();
        art.setArticleTitle(articleTitle);
        art.setArticleContent(articleContent);
        System.out.println("BlogUser发表了新文章:" + articleTitle + ",文章内容为:" + articleContent);
        this.setChanged();
        this.notifyObservers(art);
    }
}
Observer(观察者)

package org.designPattern.obServer10;

import java.util.Observable;
import java.util.Observer;

public class MyObServer implements Observer {

    public void update(Observable o, Object arg) {
        Article art = (Article)arg;
        
        System.out.println("²观察者观察到博主文章发表了!");
        System.out.println("²博主文章名" + art.getArticleTitle());
        System.out.println("博主文章内容为:" + art.getArticleContent());
    }

}

package org.designPattern.obServer10;

public class Article {
    private String articleTitle;
    private String articleContent;

    public String getArticleTitle() {
        return articleTitle;
    }

    public void setArticleTitle(String articleTitle) {
        this.articleTitle = articleTitle;
    }

    public String getArticleContent() {
        return articleContent;
    }

    public void setArticleContent(String articleContent) {
        this.articleContent = articleContent;
    }

}

package org.designPattern.obServer10;

public class MainClass {
    public static void main(String[] args) {
        BlogUser user = new BlogUser();
        user.addObserver(new MyObServer());
        user.publishBlog("三国演义", "呵呵");
    }
}




你可能感兴趣的:(观察者模式)