反射空間編程 1.space(已創建的空間){ 1.描述{(描述應當是子集的一部分) //用於解析命令以及返回結果 描述是多種多樣的,它是一個(鍵-集合)關係的集合,比如{名字-{名稱1,別名1}} {語言-{En1,zh1……};動作-{手勢1,手勢2}} } 2.屬性{ //當多個space具有 ...
-----------反射空間編程-------------
1.space(已創建的空間){
1.描述{(描述應當是子集的一部分)
//用於解析命令以及返回結果
描述是多種多樣的,它是一個(鍵-集合)關係的集合,比如{名字-{名稱1,別名1}} {語言-{En1,zh1……};動作-{手勢1,手勢2}}
}
2.屬性{
//當多個space具有全部或者部分共有的屬性,他們將誕生一個父集(這兩個space將自動加入此父集的子集),同時相同部分內容將
被所指向的父集space替代,激活時屬性中相關的space引用將被激活並載入活動空間。
//有兩種映射屬性:作為資源(解析的space-本資源),作為功能(本屬性功能-?本space的子集資源)
}
3.子集{
//此space所擴展的子集(每一個子集同時又是一個space)
}
4.反射集{
//反射是對此空間所處環境的一種描述,同時也是一種主動行為。
//一種預設的反射行為是:在此空間激活時將會記錄當前已激活space,並且主動激活反射集中未激活的space
//疲憊反射:當前已激活的space將會逐漸變為未激活狀態,因此,每次主動激活都會被動激活反射集一次(或者刷新激活狀態)。
//如果長期沒有刷新激活狀態,將自動關閉所有space,最終導致休眠。
{有二大類反射:前置反射(作為此space激活的條件,--已激活刷新其狀態,未激活將會被激活--),邏輯反射(此反射由某個功能性的space屬性解析)}
}
//優化反射集合:應當也必須有一個或者多個space對反射集進行優化管理
//反射訓練:根據具有反射集管理功能的space進行選擇性訓練。
5.狀態(1就緒,2激活,3被激活(不觸發該space的反射集),4活動,5疲憊,6休眠,7守護)
<!-- 被激活應當有更長的活動期,space的狀態應當由一個space進行統籌管理 -->
<---上述所有的項本質都是屬性的一部分?也就是說所有新創建的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規則慎用反射機制------------------------------
<!-- 這是一個新的設計模式,有興趣的郵我:[email protected] -->