[.NET Concept]彼此該為全雙工的物件不要讓它們半雙工
彼此該為全雙工的物件不要讓它們半雙工,這概念主要是想表達,當今天開發的兩個類別以物件的角度來看,若應該能夠直接知道彼此的存在,且在開發上如此實現有其便利性時,應該讓它們透過成員變數,讓物件間可以很直接的互通。這概念通常在彼此間具有階層概念的情況下特別適用。
有時會看到些開發人員撰寫過許多低階的API,或是受資料庫開發上的概念影響,常常會把該以全雙工方式撰寫的地方用半雙工的方式去實現。
以檔案系統瀏覽程式的撰寫為例,目錄與檔案這兩個物件,彼此具有階層的概念,個人就覺得很適合以全雙工的方式去處理,因為以目錄來看,目錄應該要能知道目錄的上一層目錄為何,也要能夠很直接的知道目錄內含有哪些檔案。以檔案來看,檔案也該很直接的能夠知道它所屬的目錄為何。所以以物件的觀點來看,這是很合理的作法,以開發的便利性來看,只要有其物件參考,就能直接向前取得所屬目錄的資訊,也能向後取得所內含的成員資訊,不需另記識別碼,也不需另帶方法處理,若要完整的瀏覽路徑,也可以很輕鬆的實現。
開發上若有需要還是可以儲存一些像是識別碼或是一些額外識別用的字串資訊,但應盡可能的在內部自行處理掉,避免要調用者透過某類別的方法帶入識別碼才能得知想要的資訊。這樣調用上可能會需另行儲存所在的位置、識別碼等資訊,在這些方法的實作上,多半是透過迴圈處理,不僅費時,也不是很直觀好用。