乙個專用元件該提供什麼樣的方法?功能強大、全面但複雜的方法?還是功能單
一、粒度適當的基本方法?
我會選擇後者。看看下面的例子吧~~~o(∩_∩)o~~
使用者id聯想的方法由 icpebi.dll 提供,此元件的介面提供了
stdmethodimp chrbaseinfo::query(bstr bstrkey, bstr* pbstrresults);
方法,此方法返回的是查詢到的xml,這是個基本、單一的方法。有沒有必要將xml中的資訊在 query 中提取出來再返回呢?完全沒必要,資訊的表現形式千萬種,以何種方式來表現,還是讓使用者自己去提取;若提取,反而把功能做的更死。
使用者id還涉及到驗證,而且是很常用的功能。是否把驗證功能作為 icpebi.dll 的方法來提供,是值得思量的問題,因為借助 query 在元件外部也能進行驗證。對我來說,很難拿捏。於是把跟使用者id有關的動詞都提取出來,「查詢」、「驗證」、「修復」,驗證和查詢屬同一粒度,所以作為方法提供是可以的。
驗證乙個使用者id是必須的,有沒有必要提供驗證多個使用者id的方法呢?要想提供此方法,有點複雜。多個使用者id驗證,其結果有多種可能性,此方法的結果複雜性,讓其不宜做為方法。借助單一的使用者id驗證反而簡單些,因此不提供。
總之,元件的方法要單
一、簡單且不失全面性。
string,array的屬性和方法簡單一覽
array 屬性方法一覽 array.reverse 陣列反向排序,變成新陣列。array.sort 把陣列按字元排序,變成新陣列。s array.push str1 str2 從後面新增陣列,s為新增記錄 s array.pop 從後面刪除陣列,s為被刪記錄 s array.shift 從前面刪除...
string,array的屬性和方法簡單一覽
array.reverse 陣列反向排序,變成新陣列。array.sort 把陣列按字元排序,變成新陣列。s array.push str1 str2 從後面新增陣列,s為新增記錄 s array.pop 從後面刪除陣列,s為被刪記錄 s array.shift 從前面刪除陣列,s為被刪記錄 s a...
盡量寫功能單一的方法
乙個方法只做一件事,且僅僅只做一件事,使乙個方法成為最小的乙個單元。這樣能提高方法的原子行 不可再分 提高方法的靈活性。如果乙個方法中包含了多個 功能,且多個功能相互依賴,這樣提高了 的耦合度,不利於維護。乙個方法具有多個功能,別人在使用這個方法時,僅僅只想用其中的乙個功能,也就是 一部分 然而還不...