討論區快速選單
知識庫快速選單
軟體開發過程中有哪些資安漏洞? 掌握Salesforce雲端管理秘訣 政府補助!學嵌入式+物聯網
[ 回上頁 ] [ 討論區發言規則 ]
何謂"動態繫結(Dynamic Binding)"..
更改我的閱讀文章字型大小
作者 : (just_me)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2000/11/30 下午 02:56:27
OOP的主要特性中,有一項叫做"動態繫結(Dynamic Binding)"
我在網路上找到一些解釋,摘錄以下...
<<
物件導向程式設計四個特性之一為dynamic binding,其目的是達到程式延伸,彈性化和擴充性。可利用程式語言如C++中具有polymorphism的虛擬函數(virtual function)來達。
>>
<<
晚期連結也稱之寫動態連結(dynamic binding)。簡單的說,就是物件的行為並不是在編譯時期 (compileir-time,就已經決定了。而是在程式執行時期於(晚期)(run-time)才動態地決定 的。如何動態地決定。就看物件當時的狀態(state)而定,物件封裝了所有可能的狀態處理 方法,並且根據外邊送來的訊息做出適當的反應。這也就是晚期連結的意義,這是物件導向 一個很重要的精神。
>>
<<
所謂連結是將程式中所使用到的各名稱(包括程式名稱及變數名稱),分配到適當的記憶體位置,其中在編譯過程中即完成連結的稱為靜態連結(Static Binding),又稱為早期連結(Early Binding)。如果是在程式執行過程中才完成連結的,則稱為動態連結(Dynamic Binding),又稱為延後連結(Late Binding)。
>>.........

我的問題是,到底繫結(Bunding)的定義為何?中文又可以翻成連結嗎?
那麼其意義與 Linking 是不是一樣呢?
是否有人能夠以較白話方式來解釋 dynamic binding 的真正意義....
作者 : (easylook3d)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2000/11/30 下午 05:51:08
>OOP的主要特性中,有一項叫做"動態繫結(Dynamic Binding)"
>我在網路上找到一些解釋,摘錄以下...
><<
>物件導向程式設計四個特性之一為dynamic binding,其目的是達到程式延伸,彈性化和擴充性。可利用程式語言如C++中具有polymorphism的虛擬函數(virtual function)來達。
>>>
><<
>晚期連結也稱之寫動態連結(dynamic binding)。簡單的說,就是物件的行為並不是在編譯時期 (compileir-time,就已經決定了。而是在程式執行時期於(晚期)(run-time)才動態地決定 的。如何動態地決定。就看物件當時的狀態(state)而定,物件封裝了所有可能的狀態處理 方法,並且根據外邊送來的訊息做出適當的反應。這也就是晚期連結的意義,這是物件導向 一個很重要的精神。
>>>
><<
>所謂連結是將程式中所使用到的各名稱(包括程式名稱及變數名稱),分配到適當的記憶體位置,其中在編譯過程中即完成連結的稱為靜態連結(Static Binding),又稱為早期連結(Early Binding)。如果是在程式執行過程中才完成連結的,則稱為動態連結(Dynamic Binding),又稱為延後連結(Late Binding)。
>>>.........

>我的問題是,到底繫結(Bunding)的定義為何?中文又可以翻成連結嗎?
>那麼其意義與 Linking 是不是一樣呢?
>是否有人能夠以較白話方式來解釋 dynamic binding 的真正意義....
這時的程式內部會透過類似語言解釋程式界面來做以上的動作

作者 : (Ethan)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2000/12/1 上午 02:04:25
>>OOP的主要特性中,有一項叫做"動態繫結(Dynamic Binding)"
>>我在網路上找到一些解釋,摘錄以下...
>><<
>>物件導向程式設計四個特性之一為dynamic binding,其目的是達到程式延伸,彈性化和擴充性。可利用程式語言如C++中具有polymorphism的虛擬函數(virtual function)來達。
>>>>
>><<
>>晚期連結也稱之寫動態連結(dynamic binding)。簡單的說,就是物件的行為並不是在編譯時期 (compileir-time,就已經決定了。而是在程式執行時期於(晚期)(run-time)才動態地決定 的。如何動態地決定。就看物件當時的狀態(state)而定,物件封裝了所有可能的狀態處理 方法,並且根據外邊送來的訊息做出適當的反應。這也就是晚期連結的意義,這是物件導向 一個很重要的精神。
>>>>
>><<
>>所謂連結是將程式中所使用到的各名稱(包括程式名稱及變數名稱),分配到適當的記憶體位置,其中在編譯過程中即完成連結的稱為靜態連結(Static Binding),又稱為早期連結(Early Binding)。如果是在程式執行過程中才完成連結的,則稱為動態連結(Dynamic Binding),又稱為延後連結(Late Binding)。
>>>>.........
>>
>>我的問題是,到底繫結(Bunding)的定義為何?中文又可以翻成連結嗎?
>>那麼其意義與 Linking 是不是一樣呢?
>>是否有人能夠以較白話方式來解釋 dynamic binding 的真正意義....
>這時的程式內部會透過類似語言解釋程式界面來做以上的動作



 Dynamic binding -> Polymorphism

作者 : (sunny)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2000/12/5 下午 07:24:17
我的想法是:把 Linking 當作一種技術手段,而 Binding 當作想要達成的
目的,這樣或許比較能夠分得清楚。也就是說,Linking 是技術用語,關
係實作上的細節;而 Binding 是理論上的用語,不管你用什麼樣的技術來
實作。Static Linking 的 C++ 程式也能做出 Dynamic Binding 的效果,
因為在實作上,它用函式指標陣列來呼叫物件的成員方法。只是這種效果
還不夠,因為哪一個函式指標會被用到,都已經在編譯時期決定了。這種
Static Linking 的 Dynamic Binding 只能算是二流的。最好是再加上
Dynamic Linking,讓它成為 Dynamic Linking 的 Dynamic Binding。
但是,Dynamic Linking 也分為 Load-Time Dynamic Linking 與
Run-Time Dynamic Linking,所以最好是 Run-Time Dynamic Linking
的 Dynamic Binding。是不是更糊塗了啊?這實在是因為要達到真正的
Dynamic Binding 的境界,非得作業系統的支援不可。想像一下吧:在程式
正在執行的時候,我們也能夠更換它所使用的外部模組,不用重新編譯,
不用重新啟動程式,也不用重新啟動作業系統,這才叫做真正的 Dynamic
Binding。報告完畢。
作者 : (just_me)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2000/12/6 下午 04:33:20
Thanks....
那麼 Java 的 Dynamic Binding 是屬於Load-Time Dynamic Linking 還是 Run-Time Dynamic Linking 的 Dynamic Binding , 其 VM 是否在不同作業系統下都能達到所謂真正的 Dynamic Binding 呢?


>我的想法是:把 Linking 當作一種技術手段,而 Binding 當作想要達成的
>目的,這樣或許比較能夠分得清楚。也就是說,Linking 是技術用語,關
>係實作上的細節;而 Binding 是理論上的用語,不管你用什麼樣的技術來
>實作。Static Linking 的 C++ 程式也能做出 Dynamic Binding 的效果,
>因為在實作上,它用函式指標陣列來呼叫物件的成員方法。只是這種效果
>還不夠,因為哪一個函式指標會被用到,都已經在編譯時期決定了。這種
>Static Linking 的 Dynamic Binding 只能算是二流的。最好是再加上
>Dynamic Linking,讓它成為 Dynamic Linking 的 Dynamic Binding。
>但是,Dynamic Linking 也分為 Load-Time Dynamic Linking 與
>Run-Time Dynamic Linking,所以最好是 Run-Time Dynamic Linking
>的 Dynamic Binding。是不是更糊塗了啊?這實在是因為要達到真正的
>Dynamic Binding 的境界,非得作業系統的支援不可。想像一下吧:在程式
>正在執行的時候,我們也能夠更換它所使用的外部模組,不用重新編譯,
>不用重新啟動程式,也不用重新啟動作業系統,這才叫做真正的 Dynamic
>Binding。報告完畢。




作者 : (sunny)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2000/12/9 下午 02:52:20
Java 好像和 C++ 差不多。前面 easylook3d 說的沒錯,
真正的 Dynamic Binding 是使用解譯程式界面的方式來做的,
這也是 SmallTalk 老祖宗原本就採用的方法。
Java VM 有這樣做嗎?我也不太清楚就是了。

>那麼 Java 的 Dynamic Binding 是屬於Load-Time Dynamic Linking 還是 Run-Time Dynamic Linking 的 Dynamic Binding , 其 VM 是否在不同作業系統下都能達到所謂真正的 Dynamic Binding 呢?

作者 : (JS)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2000/12/13 下午 03:44:48
>OOP的主要特性中,有一項叫做"動態繫結(Dynamic Binding)"
>我在網路上找到一些解釋,摘錄以下...
><<
>物件導向程式設計四個特性之一為dynamic binding,其目的是達到程式延伸,彈性化和擴充性。可利用程式語言如C++中具有polymorphism的虛擬函數(virtual function)來達。
>>>
><<
>晚期連結也稱之寫動態連結(dynamic binding)。簡單的說,就是物件的行為並不是在編譯時期 (compileir-time,就已經決定了。而是在程式執行時期於(晚期)(run-time)才動態地決定 的。如何動態地決定。就看物件當時的狀態(state)而定,物件封裝了所有可能的狀態處理 方法,並且根據外邊送來的訊息做出適當的反應。這也就是晚期連結的意義,這是物件導向 一個很重要的精神。
>>>
><<
>所謂連結是將程式中所使用到的各名稱(包括程式名稱及變數名稱),分配到適當的記憶體位置,其中在編譯過程中即完成連結的稱為靜態連結(Static Binding),又稱為早期連結(Early Binding)。如果是在程式執行過程中才完成連結的,則稱為動態連結(Dynamic Binding),又稱為延後連結(Late Binding)。
>>>.........

>我的問題是,到底繫結(Bunding)的定義為何?中文又可以翻成連結嗎?
>那麼其意義與 Linking 是不是一樣呢?
>是否有人能夠以較白話方式來解釋 dynamic binding 的真正意義....

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@
just_me你好:
較白話方式來解釋 dynamic binding 的真正意義應該翻成(動態繫綁)
----編譯過程中自動去成為一體
與 Linking 是不一樣的 dynamic Linking 的真正意義應該翻成(動態連綁)--編譯過程中自動去連進來


作者 : (william)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2001/1/8 上午 08:09:10
>OOP的主要特性中,有一項叫做"動態繫結(Dynamic Binding)"
>我在網路上找到一些解釋,摘錄以下...
><<
>物件導向程式設計四個特性之一為dynamic binding,其目的是達到程式延伸,彈性化和擴充性。可利用程式語言如C++中具有polymorphism的虛擬函數(virtual function)來達。
>>>
><<
>晚期連結也稱之寫動態連結(dynamic binding)。簡單的說,就是物件的行為並不是在編譯時期 (compileir-time,就已經決定了。而是在程式執行時期於(晚期)(run-time)才動態地決定 的。如何動態地決定。就看物件當時的狀態(state)而定,物件封裝了所有可能的狀態處理 方法,並且根據外邊送來的訊息做出適當的反應。這也就是晚期連結的意義,這是物件導向 一個很重要的精神。
>>>
><<
>所謂連結是將程式中所使用到的各名稱(包括程式名稱及變數名稱),分配到適當的記憶體位置,其中在編譯過程中即完成連結的稱為靜態連結(Static Binding),又稱為早期連結(Early Binding)。如果是在程式執行過程中才完成連結的,則稱為動態連結(Dynamic Binding),又稱為延後連結(Late Binding)。
>>>.........

>我的問題是,到底繫結(Bunding)的定義為何?中文又可以翻成連結嗎?
>那麼其意義與 Linking 是不是一樣呢?
>是否有人能夠以較白話方式來解釋 dynamic binding 的真正意義....

我個人以為上面的解釋是相當不錯的。
Binding 是指對指標所指向之記憶體進行檢查 (如 存在否,資料形態...),因為是動態的 (晚期的),因此短暫的資料形態不相同是沒有問題的。

作者 : 123654789(NIGGAZ)
[ 貼文 57 | 人氣 567 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/2/15 下午 08:19:11
真深澳
你們說的是DLL嗎???
作者 : good(估得)
[ 貼文 146 | 人氣 225 | 評價 480 | 評價/貼文 3.29 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/2/19 上午 11:35:27
java物件的連結是在class載入時就決定了,執行時期並不能改變
而COM的物件可以透過IDispatch介面,做到多種連結模式,甚至
可以在執行時期才知道傳入參數的型態或數量,最好的例子就是ADO
物件
 板主 : Clark
 > 物件導向程式設計 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 物件導向程式設計 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
物件導向程式設計
1 Arthur 180 
2 藍色LED 150 
3 長長 100 
4 Linkin 100 
5 love seeker 100 
6 Raymond 90 
7 Nets 80 
8 nop 70 
9 Huah 70 
10 矇矇 60 
物件導向程式設計
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875