善於設計良好的api的重要性和挑戰性已經說過很多了。第一次就做對是很難的,以後要修改則更不容易。有點像養育孩子。大多數有經驗的程式設計師都知道良好的api遵從一致水平的抽象,展示出一致性和對稱性,形成了一種有表現力的語言詞彙。哎,了解這些指導原則並不能自動轉換成恰當的行為。吃甜食是不好的。
不用大道理進行布道,我想選擇乙個特別的api設計「策略"開始說,這是我經常遇到的乙個:
便利性的觀點。它經常以如下「見解」開始:
· 我不想其它的類在做這一件事時要呼叫兩個介面。
· 如果幾乎和這個方法一樣,我為什麼還要另外再做乙個呢?只需要增加乙個簡單的switch就可以了。
· 看,這很簡單:如果第二個引數以「.txt」結尾,這個方法會自己假設第乙個引數是乙個檔名,所以我不需要兩個方法。
儘管出發點是好的,這點觀點有降低使用這些api的**的可讀性的傾向。乙個象這樣的方法呼叫:
parser.processnodes(text, false);
原文:convenience is not an -ility bygregor hohpe
1002 方便記憶的電話號碼
英文本母 除q和z外 和 號碼存在著對應關係,如下所示 a,b,c 2 d,e,f 3 g,h,i 4 j,k,l 5 m,n,o 6 p,r,s 7 t,u,v 8 w,x,y 9 標準的 號碼格式是 x,其中x表示0 9中的乙個數字。有時為了方便記憶 號碼,我們會將 號碼的數字轉變為英文本母,如...
1002 方便記憶的電話號碼
1002 方便記憶的 號碼 檢視 提交 統計 提示 提問 總時間限制 2000ms 記憶體限制 65536kb 描述英文本母 除q和z外 和 號碼存在著對應關係,如下所示 a,b,c 2 d,e,f 3 g,h,i 4 j,k,l 5 m,n,o 6 p,r,s 7 t,u,v 8 w,x,y 9 ...
1002 方便記憶的電話號碼
1002 方便記憶的 號碼 檢視 提交 統計 提示 提問 總時間限制 2000ms 記憶體限制 65536kb 描述英文本母 除q和z外 和 號碼存在著對應關係,如下所示 a,b,c 2 d,e,f 3 g,h,i 4 j,k,l 5 m,n,o 6 p,r,s 7 t,u,v 8 w,x,y 9 ...