Unity自用筆記 設計模式 觀察者模式

2021-10-08 16:20:23 字數 1649 閱讀 9026

舉例子之前友情提示,需要有委託的基礎:

定義乙個貓的類:

貓 cat(名字,顏色,建構函式,再定義乙個貓進來的方法(相當於被觀察者狀態發生改變))

貓進來的方法:

public

void

catcoming

(mouse mouse1,

mouse mouse2)

定義乙個老鼠的類:

老鼠 mouse(名字,顏色,建構函式,再定義乙個老鼠逃跑(run)的方法(相當於觀察者相應被觀察者改變的狀態))

在main中:

cat cat =

new cat (

"白貓",「」黑色「」);

mouse mouse1 =

newmouse

("黑鼠"

,"白色");

mouse mouse2 =

newmouse

(「黃鼠」,「紅色」)

;cat.

catcoming

(mouse1,mouse2)

;//貓的狀態發生改變

但是上面的程式有乙個致命的缺點:

當再增加乙個老鼠的時候,不僅需要在main中新增,還需要修改cat類中catcoming這個方法的引數和具體實現

可以在cat類中定義乙個委託:

public action catcome;

//定義了個委託 發布了個訊息

然後修改catcoming:

public

void

catcoming()

//貓進屋的函式

}

最後main中應該為這樣:

cat cat =

new cat (

"白貓",「」黑色「」);

mouse mouse1 =

newmouse

("黑鼠"

,"白色");

cat.catcom+

=mouse1.

run();

//註冊 訂閱這個訊息

mouse mouse2 =

newmouse

(「黃鼠」,「紅色」)

;cat.catcom+

=mouse2.

run();

//註冊

cat.

catcoming()

;

ps

①假如當mouse1不想相應了 則

cat.catcom-

=mouse1.

run(

);

②可以直接在run方法裡 新增cat cat的引數,直接在run裡註冊

可以減少**

③可以用事件代替委託

public

event action catcome;

//宣告事件

與委託區別在於:

委託可以在外邊直接呼叫這個註冊!這還是比較危險

而事件只有在類內 才可以呼叫

GIT自用筆記

分為工作區,暫存區,倉庫。一步步儲存。cat 檔名 檢視檔案內容 rm 檔名 刪除檔案 cd 資料夾 開啟資料夾 ls 列出資料夾下的目錄git config global user.name your name git config global user.email email example....

自用筆記37 白給

給你乙個僅由數字 6 和 9 組成的正整數 num。你最多只能翻轉一位數字,將 6 變成 9,或者把 9 變成 6 請返回你可以得到的最大數字。示例 1 輸入 num 9669 輸出 9969 解釋 改變第一位數字可以得到 6669 改變第二位數字可以得到 9969 改變第三位數字可以得到 9699...

自用筆記 揹包系統

前提的知識 ugui unity框架 jason配置表 file檔案儲存和讀取 需求分析 揹包中顯示玩家擁有的物品資訊 需要顯示資訊就需要讀取資料 資料從 來?配置表 jason 玩家資訊 檔案讀取file jason 獲取資料到面板上 ugui c 的邏輯 基本知識點 這裡的主題是為了講揹包,所以...