反射空間程式設計

2021-08-07 09:54:58 字數 1756 閱讀 6462

-----------反射空間程式設計-------------

1.space(已建立的空間)} ;動作-}

}2.屬性

3.子集

4.反射集

}//優化反射集合:應當也必須有乙個或者多個space對反射集進行優化管理

//反射訓練:根據具有反射集管理功能的space進行選擇性訓練。

5.狀態(1就緒,2啟用,3被啟用(不觸發該space的反射集),4活動,5疲憊,6休眠,7守護)

<---上述所有的項本質都是屬性的一部分?也就是說所有新建立的space都應當是描述,子集,反射集,狀態等基本屬性的space的擴充套件--->

}2.space的概念:

space是乙個被命名狀態空間,它可以描述任何事物,同時也存在自身的狀態,

它包含乙個實時更新的子集,這個子集是它的拓展,當這個空間被激

活(通常是外界訪問)時,它將產生反射行為,反射行為根據其自身決

定。反射行為可能會啟用任意的space;其自身的屬性可能被它的superspace解

析(這通常取決於屬性所對映的space,如果其對映的space不是它的superspace,

那麼,他將被加入superspace的擴充套件子集)。

3.初始的space:

初始space是描述其自身的space,預設反射行為是檢查自身狀態(屬性),

其初始子集是構成自身元件的集合,描述是自身的名字;

4.superspace的建立:

當兩個或以上space的屬性被確認相同的時候,不可避免地誕生了乙個superspace,

superspace的屬性是此共同屬性;同時,部分屬性被確認與乙個已知space中一項屬性完全相同的時候,

此space將成為這個superspace的子集成員;

5.例子:

我要使用word文件打列印乙個word的檔案space;

1.此檔案space啟用時,對應的解碼space(中間關聯呼叫的space)已啟用(通常反射啟用);

解碼space將通過反射行為掃瞄其space下的子集,並將已啟用的文件space解碼;解讀後的資料

將在print的佇列中(或者有乙個時間事件佇列);啟用印表機掃瞄一次,列印最新資料;

結論:space中,反射是一種主動行為,它會將所有的相關的space聯合啟用,具有某些特定反射功能的space將會發生特定的動作。

如同印表機一樣,如果有乙個space聯合啟動了印表機,那麼,在列印佇列中的檔案將被列印。同時需要注意的是如果掃瞄行為不關閉

已掃瞄的space,那麼,對應的space將會被無限制地掃瞄到;可能會產生無限迴圈的列印行為;最好的做法可能是僅僅掃瞄一次,

如果需要,再設定全域性掃瞄和迴圈掃瞄。

6.頂層掃瞄:

當進行space搜尋的時候,優先搜尋子集較少的屬性。如果此屬性是本次搜尋中與目標最切合的屬性;

將會根據此屬性深入搜尋目標

7.等值比較:

如果兩個space屬性描述中均有一項是直接指向乙個space,即可證明其相等;

8.守護反射:

守護狀態的space處於啟用狀態,但是其屬性不能作為任何資源使用。

9.如何建立space:

使用乙個元space來建立space,當此space屬性被啟用,將建立乙個空的space

10.如何管理space:

使用乙個元space來管理space,此space可以操作其他任意已建立的space

----------------所有反射空間都應當遵循space規則慎用反射機制------------------------------

螢幕空間反射

螢幕空間反射 scene space reflection,ssr 又叫實時區域性反射 realtime local reflection,rlr 最早見於2011年crytek在siggraph的course secrets of cryengine 3 graphics technology 傳...

Go反射程式設計

reflect.typeof vs.reflect.valueof func checktype v inte ce func testbasictype t testing.t 利用反射編寫靈活的 type employee struct func e employee updateage new...

C 反射程式設計

一 獲取屬性集 typeof type getproperties bindingflags.public bindingflags.instance tolist 二 關於屬性型別的判斷 1 基礎型別可以直接取值和賦值 2 陣列型別 property.propertytype.isarray tr...