觀察者模式(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");
}
}