欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

設(shè)計(jì)模式學(xué)習(xí)筆記——觀察者模式-創(chuàng)新互聯(lián)

觀察者模式類圖(截圖來自《大話設(shè)計(jì)模式》ps:以生活中的故事來分析設(shè)計(jì)模式,使人不覺得枯燥無味,很贊的一本書!):

成都創(chuàng)新互聯(lián)公司是少有的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、營銷型企業(yè)網(wǎng)站、微信小程序開發(fā)、手機(jī)APP,開發(fā)、制作、設(shè)計(jì)、買鏈接、推廣優(yōu)化一站式服務(wù)網(wǎng)絡(luò)公司,公司2013年成立,堅(jiān)持透明化,價(jià)格低,無套路經(jīng)營理念。讓網(wǎng)頁驚喜每一位訪客多年來深受用戶好評

代碼結(jié)構(gòu)圖:

Java版代碼:

import java.util.ArrayList;

public class Observer {
public static void main(String[] args) {
        Subject subject= new Secretary();
        AbstractObserver observer1= new StockObserver("Marry", subject);
        AbstractObserver observer2= new NBAObserver("Peter", subject);

        subject.attach(observer1);
        subject.attach(observer2);

        subject.setSbjectState("老板回來了");
        subject.inform();
    }

}

abstract class Subject {
private String sbjectState;
private ArrayList<AbstractObserver> observers = new ArrayList<>();

public void attach(AbstractObserver observer) {
        observers.add(observer);
    }

public void detach(AbstractObserver observer) {
        observers.remove(observer);
    }

public String getSbjectState() {
return sbjectState;
    }

public void setSbjectState(String sbjectState) {
this.sbjectState = sbjectState;
    }

public void inform() {
for (AbstractObserver o : observers) {
            o.update();
        }
    }
}

class Boss extends Subject {
}

class Secretary extends Subject {
}

abstract class AbstractObserver {
private String name;
private Subject sub;

public AbstractObserver(String name, Subject sub) {
this.setName(name);
this.setSub(sub);
    }

public abstract void update();

public String getName() {
return name;
    }

public void setName(String name) {
this.name = name;
    }

public Subject getSub() {
return sub;
    }

public void setSub(Subject sub) {
this.sub = sub;
    }
}

class StockObserver extends AbstractObserver {
public StockObserver(String name, Subject sub) {
super(name, sub);
    }

public void update() {
        System.out.println(this.getSub().getSbjectState() + this.getName()
+ "關(guān)閉股票行情,繼續(xù)工作!");
    }
}

class NBAObserver extends AbstractObserver {
public NBAObserver(String name, Subject sub) {
super(name, sub);
    }

    @Override
public void update() {
        System.out.println(this.getSub().getSbjectState() + this.getName()
+ "關(guān)閉NBA直播,繼續(xù)工作!");
    }
}

分享文章:設(shè)計(jì)模式學(xué)習(xí)筆記——觀察者模式-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://www.chinadenli.net/article10/djdggo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司網(wǎng)站內(nèi)鏈網(wǎng)站建設(shè)企業(yè)建站標(biāo)簽優(yōu)化App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)