<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    [導入]關于對象的兩個注解

    Posted on 2006-03-25 11:36 canonical 閱讀(959) 評論(0)  編輯  收藏 所屬分類: 設計理論

    1. 對象的一個特性是局域化。每一個對象函數(非靜態函數)都是在對象的上下文中調用的,因而隱含假設了一定的環境信息,這些信息以封裝的形式被使用。
    ?? 一個具體的體現是函數的命名,如果沒有對象,我們必須給函數進行全局命名,例如 find_friends, find_users, find_departments, 而在對象的環境下,我們可以抽象出一個采用局域化命名的接口 IQueriable.find(),實現系統的深度分解。
    ?? 在對象成員函數的內部,我們通過統一預定的名字(this指針)來訪問對象環境中的變量。而在 jsplet web框架中的action和前臺jsp中,我們通過thisObj變量來訪問后臺邏輯對象的上下文,而不需要知道對象的具體名稱 (objectName)。

    2. 對象的另一個特性是靜態化。我們從面向過程走向面向對象時,我們思維中的圖像出現了一個重大的變化:在面向過程的程序中,我們想象中存在的是一個個動態的處理過程,它們在時間軸上按照一定的順序依次執行。而在面向對象的圖景中,我們考慮的主要是一個靜態化的世界,系統分解為對象,而對象是同時存在于我們的思維中的。這里一個重要的技術手段就是成員函數。例如我們編寫一個成員函數getChildren(), 這個函數的語義是返回一個數據變量,概念上它是靜態的,但其內部實現其實可能是很復雜的,非常的動態化:可能需要查詢數據庫,可能需要校驗權限等等。
    理想的情況下,我們可以利用成員函數封裝可以實現對象圖的遍歷。例如? x.getParent().getChilldren(), 在微軟的COM模型或者Sun的JavaBean標準下,我們可以寫成
    x.parent.children。
    特別注意這里的屬性語法原則上是與時間無關的,即在同一個時刻我們認為這些屬性同時存在著,是一個靜態的關系。而以下的調用出現了明確的步驟,因而明確引入了時間因素
    ITree parent = node.getParent();
    if(parent == null)
    ?? return null;
    List children = node.getChildren();
    return children;

    在witrix平臺的tpl模板引擎中使用的EL(Expressin Language)表達式語法會自動處理函數返回值為null的情況,因而維護了對象圖的語義,不需要中斷調用過程來進行異常處理,是簡化界面編程的一個重要方面。

    這里順便提一句:人的思維是傾向于靜態化的,但現實世界卻是在不斷的變動中的。正所謂不變的只有變化。Von Neumann體系結構強迫我們在最細節處引入變化過程,很多時候是過分的負擔。我們需要的是識別出各種可以靜態描述的部分,集中精力于那些真正需要隨需應變的應用。

    主站蜘蛛池模板: 亚洲AV无码一区二区二三区软件 | 亚洲国产成人片在线观看无码| 亚洲精品永久在线观看| 日韩精品成人无码专区免费| 亚洲日韩中文字幕| 免费看黄视频网站| 亚洲第一成人在线| 日本最新免费不卡二区在线| 色偷偷亚洲第一综合网| 亚洲国产一区视频| 国产免费A∨在线播放| 亚洲精品无码专区在线在线播放| a毛片在线还看免费网站| 久久精品国产亚洲av四虎| 人妻无码一区二区三区免费| 久久精品国产亚洲77777| 国产99视频精品免费观看7| 国产AV旡码专区亚洲AV苍井空 | 国产电影午夜成年免费视频| 亚洲人成日本在线观看| 成年女人午夜毛片免费看| 特级无码毛片免费视频 | 亚洲精品电影天堂网| 成人免费网站在线观看| 日韩免费码中文在线观看| 中文字幕在线亚洲精品| 亚洲视频免费在线看| 亚洲精品乱码久久久久久蜜桃图片| 国产免费观看青青草原网站| xvideos永久免费入口| 久久亚洲日韩精品一区二区三区| 久久综合AV免费观看| 国产精品视频全国免费观看| 亚洲美女aⅴ久久久91| 国产日产成人免费视频在线观看| 国产高潮久久免费观看| 亚洲国产人成在线观看| 久久精品国产亚洲7777| 2021国产精品成人免费视频| fc2免费人成在线| 亚洲午夜精品一区二区公牛电影院 |