组件提供的方法应单一、简单且不失全面
发布时间:2020-12-13 22:46:49 所属栏目:百科 来源:网络整理
导读:一个专用组件该提供什么样的方法?功能强大、全面但复杂的方法?还是功能单一、粒度适当的基本方法? 我会选择后者。看看下面的例子吧~~~O(∩_∩)O~~ 用户ID联想的方法由 icpebi.dll 提供,此组件的接口提供了 STDMETHODIMP CHrBaseInfo::Query(BSTR bstrKey,
一个专用组件该提供什么样的方法?功能强大、全面但复杂的方法?还是功能单一、粒度适当的基本方法? 我会选择后者。看看下面的例子吧~~~O(∩_∩)O~~ 用户ID联想的方法由 icpebi.dll 提供,此组件的接口提供了 STDMETHODIMP CHrBaseInfo::Query(BSTR bstrKey,BSTR* pbstrResults); 方法,此方法返回的是查询到的XML,这是个基本、单一的方法。有没有必要将XML中的信息在 Query 中提取出来再返回呢?完全没必要,信息的表现形式千万种,以何种方式来表现,还是让用户自己去提取;若提取,反而把功能做的更死。 用户ID还涉及到验证,而且是很常用的功能。是否把验证功能作为 icpebi.dll 的方法来提供,是值得思量的问题,因为借助 Query 在组件外部也能进行验证。对我来说,很难拿捏。于是把跟用户ID有关的动词都提取出来,“查询”、“验证”、“修复”,验证和查询属同一粒度,所以作为方法提供是可以的。 验证一个用户ID是必须的,有没有必要提供验证多个用户ID的方法呢?要想提供此方法,有点复杂。多个用户ID验证,其结果有多种可能性,此方法的结果复杂性,让其不宜做为方法。借助单一的用户ID验证反而简单些,因此不提供。 总之,组件的方法要单一、简单且不失全面性。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ajax – 如何使用Chrome的开发人员工具重复POST请求?
- Swift3游戏开发(spritekit)如何使用多个动作在一张的图片
- ajax跨域请求的实现方式
- AJAX+form+JQUERY动态提交数据
- swift – 尝试扩展IntegerType(和FloatingPointType);为什么
- c# – 为什么我用BackgroundWorker.ReportProgress获取Targ
- swift – LinkedIn OAuth2.0重定向iOS应用程序的URL,不带ht
- c – 如何为不绑定模板参数的tr1 :: unordered_map定义宏/
- 关于Flash和JS相互调用的例子
- office365 XSLT+XML实现页面的显示(1)