###### tags: `CleanCode` <STYLE> p,li,oi,h3{ font-family:"微軟正黑體"; } </STYLE> # 系統邊界 藉由讓程式在最少處引用第三方軟體的方式,來管理其邊界。 可以將其進行封裝或者使用一個ADAPTER(轉接器),將自己定義的介面轉換成第三方提供的介面。 ![](https://i.imgur.com/S6tppAf.png) 例: ![](https://i.imgur.com/RVAbls2.png) 原先使用泛型的方式傳遞Map<Sensor>的實體,透過以上的方式邊界上的介面(亦即Map)被隱藏起來。也就是說,轉型與型態管理都在Sensor裡頭進行轉換了。 # #### 學習式測試 要學習第三方軟體時,可以另外撰寫一些測試程式,來探索了解第三方軟體。又叫做學習式測試(Jim Newkirk金.紐寇克)。 邊界測試的重點在於 :::success * 助於驗證第三方軟體API是否按照預期般的執行 * 助於增進對API的瞭解 * 當第三方軟體套件修改升級時,能執行這些學習式測試,來檢驗軟體套件在行為上是否有變動處。 :::