设为首页 加入收藏

TOP

1.1.1 契约和承包人
2013-10-07 16:24:23 来源: 作者: 【 】 浏览:72
Tags:1.1.1 契约 承包人

1.1.1 契约和承包人

我们打个比方来对API进行说明。假设你要建造自己的家,如果你想完全靠自己建造房子,可能需要全面理解建筑结构、给排水管道、电气设计、木工技术、石工技术,以及诸多其他知识。而且还需要亲自动手完成每一步工作,并且对每项任务的各个细节都要把握周到,比如是否有足够的木材铺设地板,是否用对与螺丝匹配的螺丝帽等。最后,由于该工程只有你一个人在干,一段时间只能做一件事,因此完成项目的总体时间可能会非常久。

另一种解决方案则是,雇用一些专业的承包人来承担关键任务(见图1-2)。你可以雇用建筑师设计房子蓝图,雇用木匠做所有木工活,雇用水管工安装水管和下水道系统,雇用电工安装电气系统。如果采取这种方法,你要分别和每个承包人沟通--告诉他们你希望完成什么工作,并协商确定价

格--然后他们便可以为你做这些工作。如果幸运的话,也许你的某个朋友正好是一位承包人,并且他又愿意免费为你提供服务。这样一来,你就彻底从房屋建设所需要掌握的各种琐事中解脱出来,成为一名高层管理者,选择最好的承包人完成你的目标,并确保将每个人的工作整合到一起,这样便可建造出你心中的理想家园。

这个比喻用在API上非常恰当:你可以把所建造的屋子想象成你希望编写的软件程序,并且那些承包人负责提供给你API,这些API将那些原本需要你完成的每项任务进行了抽象,并隐藏了相关工作的实现细节。你的任务则是为应用程序选择合适的API,并将它们整合到你的程序中。而你的那位技艺娴熟且愿意免费提供服务的朋友就等同于一些开源库,与其对应的还有一些需要收取使用许可费的商业库。这个比喻甚至还可以继续扩展,如你的承包人还可以再去招聘其他的子承包人,即你使用的API还可以借助其他API完成它们自身的任务。

用"承包人"做比喻在面向对象编程(www.cppentry.com)中司空见惯。早期的一些业内人员就曾经谈论过,让某个对象为其所提供的服务或者行为定义一个契约。然后,该对象在被客户端程序请求时,这些服务。实现方式可能是将部分任务转包给幕后的其他对象(Meyer, 1987; Snyder, 1986)。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇1.1 什么是API 下一篇1.1.2 C++中的API

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis 分布式锁全解 (2025-12-25 17:19:51)
·SpringBoot 整合 Red (2025-12-25 17:19:48)
·MongoDB 索引 - 菜鸟 (2025-12-25 17:19:45)
·What Is Linux (2025-12-25 16:57:17)
·Linux小白必备:超全 (2025-12-25 16:57:14)