反射空間程式設計
-----------反射空間程式設計-------------
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規則慎用反射機制------------------------------
<!-- 這是一個新的設計模式,有興趣的郵我:1258488823@qq.com -->
相關文章
- 空間、運動(時間)以及程式設計師程式設計師
- Java 反射程式設計(下)Java反射程式設計
- Oracle表空間設計理念Oracle
- 重走JAVA程式設計之路(三)反射Java程式設計反射
- 從中國造像空間聊聊遊戲空間設計中的一些設計小技巧遊戲
- swift-名稱空間/反射機制(Reflect)Swift反射
- STL-空間配置器、迭代器、traits程式設計技巧AI程式設計
- 高階螢幕空間反射: Screen Space Reflection (SSR)反射
- 高階螢幕空間反射: Screen Space Reflection (SSSR)反射
- 路由&模組化設計&名稱空間路由
- [.net 物件導向程式設計進階] (20) 反射(Reflection)(上)利用反射技術實現動態程式設計物件程式設計反射
- 程式地址空間
- [.net 物件導向程式設計進階] (21) 反射(Reflection)(下)設計模式中利用反射解耦物件程式設計反射設計模式解耦
- Shell磁碟空間和表空間告警程式
- Java程式設計師都需要懂的「反射」Java程式設計師反射
- 元物件、 屬性 和 反射程式設計物件反射程式設計
- 14 Python物件導向程式設計:反射Python物件程式設計反射
- Rust 程式設計影片教程(進階)——008Cargo 工作空間Rust程式設計Cargo
- 《程式設計珠璣》程式碼之路15:節省空間的常見姿勢程式設計
- Rust 程式設計視訊教程(進階)——008Cargo 工作空間Rust程式設計Cargo
- 好程式設計師分享JavaScript名稱空間模式例項詳解程式設計師JavaScript模式
- Java程式設計師都要懂得知識點:反射Java程式設計師反射
- Java程式設計基礎28——反射&JDK新特性Java程式設計反射JDK
- 黑馬程式設計師——Java高新技術---反射程式設計師Java反射
- C語言高效程式設計的四大祕技之以空間換時間C語言程式設計
- Oracle修改預設表空間和預設臨時表空間Oracle
- 表空間管理之bigfile表空間設定
- 遊戲場景設計探究:空間潛意識遊戲
- 大資料匯入之MySql設計之空間換時間的設計變更大資料MySql
- 如何設計一個好玩的競技遊戲——戰略空間設計遊戲
- 如何設計一個好玩的競技遊戲——戰鬥空間設計遊戲
- 程式設計師一週花多少時間程式設計?程式設計師
- 《Go 語言程式設計》讀書筆記(十)反射Go程式設計筆記反射
- 空間距離計算
- 遊戲大地圖開發指南:遊戲外部空間設計遊戲地圖
- 程式設計師最多能用多少時間來程式設計?程式設計師
- 反射與工廠設計模式反射設計模式
- Swift3.0 -- 反射機制Demo&動態呼叫名稱空間Swift反射