C#設計模式之觀察者模式and代理模式

觀察者模式(Observer):

一句話特點:不斷地詢問
舉個栗子:像是時間計時器就符合這個模式,程序在Update中不斷地累加計時器,不斷詢問計時器是否到達了應該調用方法的時間點,如果到了那就歸零,並且調用方法,這種不斷詢問的方法也就是觀察者模式Observer;

void Update(){
        timeCount++;
        if(timeCount>0.5f)
        {
            timeCount=0;
            //To Do Something
        }
    }
}

代理模式:

1.一句話特點:給別的類安裝一個間諜(指向方法的指針)
舉個栗子:
鼠標點擊事件中,給UGUI的button控件的Onclick事件AddListener,這就是安插一個間諜,一旦敵人動手了,間諜就會發諜報過來,警示我.

    private btn = transform.GetComponent<Button>();
    void Start()
    {
        //分配的空間在棧上
        btn.OnClick.AddListener(OnClick);
        //分配的空間在堆上
        btn.OnClick.AddListener(new UnityAction(OnClick));
    }
    public void OnClick()
    {
        Debug.Log("OnClick");
    }
    
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章