<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 2007-04-01 21:30 canonical 閱讀(1472) 評論(3)  編輯  收藏 所屬分類: 設計理論
        命名(Naming)無疑是人們認識世界最基本的手段之一。從軟件技術的發展中我們也可以觀察到命名技術的不斷深化。
        1. 助記的名:匯編之中我們有了move/push/pop這樣的指令,所面對的不再是010101這樣的同質的數字世界。變量也逐漸可以擁有自己的名字,甚至多個名字。在C語言中指針的概念被進一步抽象化,使得我們可以為任意內存地址起一個可讀的名字。我們甚至漸漸忘懷了pStruct是指針的名字,而直接把它等同于指針所指的內容本身。
        2. 局部的名:函數(例程)概念的出現把局部名稱引入系統,從此精細結構的發展才成為可能。
        3. 多義的名:面向對象的出現可以看作是命名技術的一種重大進展,它可以把一組相關的數據和函數放在一起起個名字。繼承概念為名引入了多義性。通過虛擬函數表所實現的lazy-binding部分松動了對象的名和實之間的指稱關系。現在一些所謂dynamic dispatch技術,依然是頑強的希望在同一名下,納入更多實的變化。
        4. 特指的名:面向對象技術創造一個特殊的名---this指針。它是一種約定了的固化了的局部名稱。使用this指針使得我們區分了領域(domain)的內外。在domain外對象可以有各種稱謂,而domain內我們直接通過this直接觸及到對象的實體。在javascript這樣的動態語言中,函數和this指針是動態綁定的。在某種意義上,這意味著一個操作所依賴的domain知識可以是動態變化的。
        5. 相對的名:面向對象技術所創造的知識相對化概念的一個直接體現是命名的相對化。一個函數它的具體含義不再是絕對的,而是相對于this指針的。因此我們不再采用user_load, book_load這樣的全稱的函數名, 而只定義load這樣的具有依賴性的函數。在面向對象的理想操作圖景下,首先應該是通過一個整體的參數直接區分出多個大的情景,然后在每個特定的情景下分別調用相對函數進行操作。在模板(template)技術或者動態語言中,這種相對性可以得到更加充分的發揮。因為在泛型或者弱類型語言中,我們需要的只是對象提供特定名稱的函數或屬性而已。
        6. 持久的名:在早期的語言中,名只在編譯時刻存在。在編譯出的二進制代碼中,名所提供的豐富的描述空間不復存在,我們所有的只是同質性的二機制地址而已。而在現代語言中,反射已經成為了不可或缺的技術,它使得我們在運行時刻仍然可以擁有復雜的描述結構。
        7. 分離的名:在一般的程序中,我們早已習慣了變量名直接指代實際可操作的對象本身,名的問題顯得太平庸以至于大家似乎忽略了它的存在。但是在web體系架構下, 因為存在著瀏覽器和服務器這樣兩分的狀態空間, 名成為兩個系統交互的直接手段,名的重要性也重新凸顯出來。只有在一個封閉的container中,才能通過名字解耦. 因此web架構設計的一個核心問題是構建出各種各樣的全局的container. 瀏覽器前端技術的一個本質性困難即在于多個瀏覽器窗口之間沒有共享的全局對象空間,因而很難在前臺獨立建立container結構。
       在witrix平臺的jsplet框架中,在前臺我們通過如下url來訪問后臺
      /view.jsp?objectName=MyObj&$bizId=test&objectEvent=ViewDetail&id=1
    MyObj這一參數標定了BeanContainer中的一個Java對象, $bizId參數指定應用某個Aspect到此對象上,objectEvent參數映射到WebAction上的一個java方法,而EntityManager最后負責把id映射到具體的實體對象。當我們在后臺需要編制代碼的時候,entity對象已在手邊。
        8. 名的結構:當名越來越多的時候,我們需要對它們進行有序的組織。名字空間(namespace)所采用的樹形結構可以說是最直接的一種組織方式。這一結構不僅僅可以用于描述,同時可以用于控制。

    Feedback

    # re: 面向對象之名實論  回復  更多評論   

    2007-04-02 19:12 by liigo
    總結的很好。

    # re: 面向對象之名實論  回復  更多評論   

    2007-05-23 12:03 by neo
    無外乎兩個概念:reference, namespace(或叫environment)

    # re: 面向對象之名實論  回復  更多評論   

    2007-05-23 20:11 by canonical
    關鍵正在于reference這個概念本身的分化和精細化
    主站蜘蛛池模板: 永久免费A∨片在线观看| 亚洲va乱码一区二区三区| 一级毛片一级毛片免费毛片| 女人18毛片水真多免费播放| 一本色道久久88亚洲精品综合| 一二三四免费观看在线视频中文版| 色噜噜综合亚洲av中文无码| 无码av免费一区二区三区试看| 亚洲综合精品香蕉久久网97| 1000部拍拍拍18勿入免费视频软件 | 亚洲尹人九九大色香蕉网站| 免费国产污网站在线观看15| 亚洲福利视频一区二区三区| 四虎在线免费视频| 亚洲中文字幕一二三四区| 无码国模国产在线观看免费| 日本一区二区三区在线视频观看免费 | 日韩免费无砖专区2020狼| 边摸边吃奶边做爽免费视频99| 久久亚洲AV永久无码精品| 国产免费阿v精品视频网址| 久久亚洲国产成人精品性色| 美女被cao免费看在线看网站| 亚洲av无码专区在线电影| 亚洲国产午夜中文字幕精品黄网站| 黄桃AV无码免费一区二区三区| 亚洲国产精品一区| 午夜老司机免费视频| 精品无码国产污污污免费网站国产 | 最新中文字幕电影免费观看| 无套内谢孕妇毛片免费看看| 亚洲国产精品无码av| 18勿入网站免费永久| 香港经典a毛片免费观看看| 亚洲精品自在在线观看| 国产精品入口麻豆免费观看| 国产精品亚洲一区二区三区 | 免费精品国产日韩热久久| 老司机午夜性生免费福利| 久久精品国产亚洲AV嫖农村妇女| 妞干网手机免费视频|