1:說明RS-232
RS-232 (Recommended Standard-232) 是由電子工業協會(Electronic Industries Association,EIA) 所制定的非同步傳輸(asynchronous transmission) 標準介面。
這也是許多個人電腦上的通訊介面之一,在IBM-PC 上,一般電腦
可連接二至四個 RS-232 介面。一般又稱此介面為『序列埠』或『串列埠』(serial port),由於 RS-232 是由 EIA 所定義的,所以也常稱為 EIA-232,目前演進到第四代 RS-232D。
通常 RS-232 介面以九個接腳 (DB-9) 或是二十五個接腳 (DB-25)的型態出現,一般個人電腦上會有兩組 RS-232 介面,分別稱為 COM1 和 COM2;此外,還可以連接 COM3 及 COM4,不過因為 COM1/COM3 共用 IRQ 4,而COM2/COM4 共用 IRQ 3,所以同時最多只能使用四個 COM ports 的其中兩個。
此介面通常用來連接數據機、序列滑鼠 (PS/2 滑鼠不佔用 COM port)、條碼機 、簡單的工業控制組件、串列埠列表機(一般印表機只支援傳輸速度較快的平行埠傳輸),但是因為序列傳輸是每次傳送一個位元,比平行埠傳輸 (一次傳送八個位元) 要慢許多,因此連接其它電腦和印表機的工作大多由平行埠來代替。
2.用筆記上的end-to-end與point-to-point的圖,利用該圖的概念找出實際例子
end-to-end :間接相連(跨網路相連)

應用:SSL/TLS
point-to-point:直接相連(實體相連)

應用:P2P
群對群技術(peer-to-peer, 簡稱P2P)又稱對等網際網路技術,是一種網路新技術,依賴網路中參與者的計算能力和頻寬,而不是把依賴都聚集在較少的幾台伺服器上。請注意與point-to-point之間的區別,peer-to-peer一般譯為端對端或者群對群,指對等網中的節點;point-to-point一般譯為點對點,對應於普通網路節點。P2P網路通常用於透過Ad Hoc連線來連線節點。這類網路可以用於多種用途,各種檔案分享軟體已經得到了廣泛的使用。P2P技術也被使用在類似VoIP等即時媒體業務的資料通訊中。
純點對點網路沒有客戶端或伺服器的概念,只有平等的同級節點,同時對網路上的其它節點充當客戶端和伺服器。這種網路設計模型不同於客戶端-伺服器模型,在客戶端-伺服器模型中通訊通常來往於一個中央伺服器。
end-to-end :間接相連(跨網路相連)

安全套接層(Secure Sockets Layer,SSL)是網景公司(Netscape)在推出Web瀏覽器首版的同時提出的協議。SSL採用公開密鑰技術,保證兩個應用間通信的保密性和可靠性,使客戶與伺服器應用之間的通信不被攻擊者竊聽。可在伺服器和客戶機兩端同時實現支持,目前已成為網際網路上保密通訊的工業標準,現行Web瀏覽器亦普遍將HTTP和SSL相結合,從而實現安全通信。此協議和其繼任者傳輸層安全(Transport Layer Security,TLS)是為網路通信提供安全及數據完整性的一種安全協議。TLS與SSL在傳輸層對網路連接進行加密。
point-to-point:直接相連(實體相連)

應用:P2P
群對群技術(peer-to-peer, 簡稱P2P)又稱對等網際網路技術,是一種網路新技術,依賴網路中參與者的計算能力和頻寬,而不是把依賴都聚集在較少的幾台伺服器上。請注意與point-to-point之間的區別,peer-to-peer一般譯為端對端或者群對群,指對等網中的節點;point-to-point一般譯為點對點,對應於普通網路節點。P2P網路通常用於透過Ad Hoc連線來連線節點。這類網路可以用於多種用途,各種檔案分享軟體已經得到了廣泛的使用。P2P技術也被使用在類似VoIP等即時媒體業務的資料通訊中。
純點對點網路沒有客戶端或伺服器的概念,只有平等的同級節點,同時對網路上的其它節點充當客戶端和伺服器。這種網路設計模型不同於客戶端-伺服器模型,在客戶端-伺服器模型中通訊通常來往於一個中央伺服器。
3.解釋Encapsulation
封裝(Encapsulation)是物件導向中四大特色之一,簡單來說封裝就是適度的將資訊隱藏(Information Hiding),避免外界不當使用。在抽象化的過程,善加將定義類別中的屬性跟方法封裝,有利於日後系統維護時造成的許多不必要的問題喔。
為什麼需要將資料隱藏或加以封裝?
舉一個例子:一個Person的類別中,若有一屬性為心跳,如果今天心跳沒有宣告成private(即類別獨自私有,外界不得使用),代表外界可以直接取得某人的心跳屬性,如此當我在某天跟你吵架我就直接取用你的心跳屬性特定:setHeart(0),那恭喜你,你得躺平囉!由此應該可以感受到適度進行封裝的效用了吧~
封裝手法:提供受控制的間接操作取代不受控制的直接存取。在系統中最怕的就是不受控制的狀態發生,這對日後的維護非常頭疼,邏輯錯誤在龐大的程式當中要找出來,有時還真的像是大海撈針。如何避免這種不必要的問題發生,我想適度封裝是一個不錯的解決方案喔,舉例而言:若有一個Person的類別,當中有身高、體重兩個屬性,若不將他們宣告成private,那外部類別可以直接取得並設定如下,試想身高設定成-100是什麼樣的狀況又是否合理?但只要你允許外面存取,就無法保證外界是否會對你的屬性做此類愚蠢的設定。
身高 = -100;
針對上述該如何處理呢?建議作法如下:
private 身高;
public boolean set身高(int h) {
if(h<0) return false;
else 身高 = h;
}
我們可以藉由將身高封裝,並提供一個外部的設定管道,然而此管道是可受控制的,如此必可確保身高的設定不會有不合邏輯的情況發生。
封裝最主要的兩個優勢:
避免不必要的資料存取現象發生。利用封裝可以適度的將資料進行適度資訊隱藏。如此避免不必要的存取,進而發生問題。
適度將製作細節封裝可以降低ripple effect(漣波效益),避免日後修改一問題所帶來的連帶效應過大。如此在日後可增加系統的可擴充性、易維護性。對維修工程師將是一大福音喔~
沒有留言:
張貼留言