代碼整潔之道筆記
[TOC]
邊界
即自己的代碼和第三方的代碼的接口適配
使用第三方代碼 ①封裝
- 接口提供者和使用者間的區(qū)別:
接口提供者追求普適性,能在多個(gè)工作環(huán)境中工作而吸引用戶涌韩。
接口使用者追求滿足自己的特定需求畔柔。
如對于Map使用的不同方式:
一:
Map<Sensor> sensor = new HashMap<Sensor>();
Sensor s = sensor.get(sensorId);
二:
public class Sensors {
private Map sensors = new HashMap();
public Sensor getById(String id) {
return (Sensor)sensors.get(id);
}
}
代碼一的Map提供了太多的可操作空間,不受限制地傳遞Map實(shí)體臣樱。
代碼二將接口隱藏靶擦,避免了誤用。
瀏覽和學(xué)習(xí)邊界
編寫測試來理解和學(xué)習(xí)第三方代碼
- 測試確保代碼能夠按照預(yù)期的運(yùn)行
- 當(dāng)?shù)谌糯a發(fā)布新版本時(shí)雇毫,可以通過運(yùn)行測試來確保程序的行為仍舊達(dá)到預(yù)期
- 邊界測試總能減輕代碼遷移的壓力
使用尚不存在的代碼 ②適配器模式
開發(fā)中可能遇到需要調(diào)用另一個(gè)模塊的接口玄捕,可是該模塊尚未發(fā)布。
- 從距離未知代碼最遠(yuǎn)處進(jìn)行開發(fā)棚放,逐步了解到自己需要的是什么樣的接口枚粘。
- 為了不受阻礙,定義自己使用的接口席吴。 這就是我們希望在未知代碼處使用的接口赌结。
- 當(dāng)別人的代碼發(fā)布時(shí)捞蛋,需要改動(dòng)的是自己定義的接口和對方的接口間增加(修改)適配器。
整潔的邊界
對于邊界上的代碼 需要進(jìn)行清晰的分割和定義了期望的測試柬姚。
- 避免自己的代碼過多地了解第三方的特定信息拟杉。 依靠不可靠的他人代碼不如依靠自己。
- 對于引用第三方的接口量承,可以使用適配器的模式搬设,也可以通過封裝,從而減少修改時(shí)的改動(dòng)撕捍。