1. 程式人生 > 其它 >Linux的資料夾及檔案的許可權

Linux的資料夾及檔案的許可權

前言:

  從現實角度來說,我們每一個人都是一個觀察者,同時也是一個被觀察者。

  作為被觀察;者,我們會發出一些資訊,觀察者在接收到這些資訊後,會做出相應的反映;而作為觀察者,我們是可以被“被觀察者”所發出的資訊影響的。

  一個被觀察者,可能存在多個觀察者。也就是說,一個被觀察者所發出的資訊,可能會影響到多個觀察者。

  觀察者設計模式:

    定義了一種一對多的關聯關係。一個物件A與多個物件B、C、D之間建立“被觀察與觀察關係”。

    當物件A的狀態發生改變時,通知所有觀察者物件B、C. D。當觀察者物件B、c、D在接收到A的通知後,根據自身實際情況,做出相應改變。

    當然,觀察者與被觀察者指的都是具有某一類功能的物件、

結構說明:

程式碼:

IObserved:

public interface IObserved {
    /**
     * 接收資料資訊
     * @param demo
     */
    void shuJu(String demo);
}

IBeObserved:

public interface IBeObserved {
    /**
     * 新增觀察者的方法
     * @param observed
     */
    void addObserved(IObserved observed);

    /**
     * 刪除觀察者的方法
     * 
@param observed */ void removeObserved(IObserved observed); /** * 向觀察者傳送訊息的方法 * @param data */ void sendObserved(String data); }

OneBeserved:

public class OneObserved implements IObserved {
    @Override
    public void shuJu(String demo) {
        System.out.println(
"一號觀察者正在處理資訊:" + demo); } }

TwoBeserved:

public class TwoObserved implements IObserved {
    @Override
    public void shuJu(String demo) {
        System.out.println("二號觀察者正在處理資訊:" + demo);
    }
}

BeObserverSimp:

public class BeObserverSimp implements IBeObserved {
    /**
     * 定義觀察者集合/
     */
    List<IObserved> list;

    public BeObserverSimp() {
        //在被觀察者建立的時候,就建立觀察者集合
        list = new ArrayList<>();
    }

    @Override
    public void addObserved(IObserved observed) {
        list.add(observed);
    }

    @Override
    public void removeObserved(IObserved observed) {
        list.remove(observed);
    }

    @Override
    public void sendObserved(String data) {
        //遍歷集合呼叫每個觀察者中的方法
        for (IObserved observed : list) {
            observed.shuJu(data);
        }
    }
}

測試類:

/**
 * @author zhangzhixi
 */
public class Test {
    public static void main(String[] args) {
        //建立觀察者
        OneObserved one = new OneObserved();
        TwoObserved two = new TwoObserved();
        //建立被觀察者
        BeObserverSimp bos = new BeObserverSimp();
        //新增一號跟二號觀察者
        bos.addObserved(one);
        bos.addObserved(two);
        //刪除一號觀察者
        bos.removeObserved(one);
        //向觀察傳送訊息
        bos.sendObserved("你好世界!");
    }
}

測試結果: