重構手法22:Replace Array with Object (以對象取代數組)

來源:互聯網
上載者:User

你有一個數組,其中的元素各自代表不同的東西。以對象替換數組,對於數組中的每個元素,以一個欄位來表示。

動機:數組時一種常見的用以組織資料的結構。不過,它們應該只用於“以某種順序容納一組相似對象”。有時候你會發現,一個數組容納了多種不同對象,這會給使用者帶來麻煩,因為他們很難記住像“數組的第一個元素是人名”這樣的約定。對象就不同了,你可以運用欄位名和函數名來傳達這樣的資訊,因此你無需死記它,也無需依賴注釋。而且如果使用對象,你還可以將資訊封裝起來。並使用 Move Method (搬移函數)為它加上相關行為。

做法:1、建立一個類表示數組所擁有的資訊,並在其中以一個public欄位儲存原先的數組。

       2、修改數組的所有使用者,讓它們改用新類的執行個體。

       3、編譯、測試。

       4、逐一為數組元素條件取值/設值函數。根據元素的用途,為這些訪問函數命名。修改用戶端代碼,讓它們通過訪問函數取用數組內的元素。每次修改後,編譯並測試。

       5、當所有對數組的直接存取轉而調用訪問函數後,將新類中儲存該數組的欄位聲明為private。

       6、編譯。

       7、對應數組內的每個元素,在新類中建立一個類型相當的欄位。修改元素的訪問函數,令它改用上述的建立欄位。

       8、修改每個元素,編譯並測試。

       9、數組的所有元素都有了相應的欄位後,刪除該數組。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.