组件提供的方法应单一、简单且不失全面

前端之家收集整理的这篇文章主要介绍了组件提供的方法应单一、简单且不失全面前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一个专用组件该提供什么样的方法功能强大、全面但复杂的方法?还是功能单一、粒度适当的基本方法? 我会选择后者。看看下面的例子吧~~~O(∩_∩)O~~ 用户ID联想的方法由 icpebi.dll 提供,此组件的接口提供了 STDMETHODIMP CHrBaseInfo::Query(BSTR bstrKey,BSTR* pbstrResults); 方法,此方法返回的是查询到的XML,这是个基本、单一的方法。有没有必要将XML中的信息在 Query 中提取出来再返回呢?完全没必要,信息的表现形式千万种,以何种方式来表现,还是让用户自己去提取;若提取,反而把功能做的更死。 用户ID还涉及到验证,而且是很常用的功能。是否把验证功能作为 icpebi.dll 的方法来提供,是值得思量的问题,因为借助 Query 在组件外部也能进行验证。对我来说,很难拿捏。于是把跟用户ID有关的动词都提取出来,“查询”、“验证”、“修复”,验证和查询属同一粒度,所以作为方法提供是可以的。 验证一个用户ID是必须的,有没有必要提供验证多个用户ID的方法呢?要想提供此方法,有点复杂。多个用户ID验证,其结果有多种可能性,此方法的结果复杂性,让其不宜做为方法。借助单一的用户ID验证反而简单些,因此不提供。 总之,组件的方法要单一、简单且不失全面性。

猜你在找的设计模式相关文章