- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.1 方法和字段签名 3.2 文件及其内容 3.3 环境变量和命令行选项 3.4 文本信息也是api 3.5 协议 3.6 行为 3.7 国际化支持和信息国际化 3.8 api的广泛定义 3.9 如何检查api的质量 3.9.1 可理解性 3.9.2 一致性 3.9.3 可见性 3.9.4 简单的任务应该有简单的方案 3.9.5 保护投资 API设计 误解:API只是加对类和方法提供说明的JAVADOC API存在的原因: 可以将大块的构件“无序”地集合应用程序 构件模块:包括共享类库、框架、预先定义的应用程序框架、及上述的组合。 每个API完全正确,程序集成工作就简单。不存在调试、、阅读代码、打补丁和如何设计。是“无绪”的编程 API构件模快 构件模块: (1)共享类库 (2)框架 (3)预先定义的应用程序框架 (4)上述的组合。 每个API完全正确,程序集成工作就简单。 程序集成工作就简单 表现: (1)不用阅读代码要求 (2)不要编写代码 (3)不用调试模块功能 (4)不用打补丁 3.1 方法和字段的签名 一个API是一堆类以及类方法和字段(属性)的集合。 涉及成员方法问题: 涉及公共的成员,包括数据成员、受保护成员、私有成员。 如何访问成员涉及模块内部相关问题。 对公共成员访问 公开成员:对所有公共(公开)成员访问,只需要访问相应的名称 对非公开的成员访问涉及比较复杂,非公开的成员(内容),未公开的内容简介不是API ,表示它不外承诺兼容性。 未公开的内容访问 对非公开成员访问,一般使用反射技术来创建对象时,不需要知道具体类型,只需要的话字符串的方式传入类的全名即可创建 一个实例对象。 反射是直接读入dll或者对应的库,反射机制是取出模块中所有的中间语言代码 反射机制有两个用处 程序集设计者本身在程序集发布后由于某些需求想调用原先的私有方法,进行某些操作 程序集的使用者恶意的使用私有成员作一些本身 out of scope by design 的事情。 反射可以访问对象所有成员当然包括私有的,所以这种做法是很危险的 3.2文件及其内容 应用程序执行时要读写的文件夹以及这些事文件的格式非常重要。 配置信息也是一类重要的API。 。对外通过虚拟方式提供配置文件可以保持一致性,这是配置文件很重要的优点。 3.3环境变量和命令行选项 环境变量和命令行界面作为上下文环境,对于 功能的库来说,往往不是很重要。 接口在特定环境下也是非常重要。 不是所有的操作系统的都提供了环境变量方面的功能 Java处理方式 缺少一种读取环境变量的方法 需要的读取当前的环境变量值,然后编写脚本调用前面的所说的那些命令 取代方案: 系统属性。Java中的任何方法都是可以用调用System.getProperty方法,通过传入一个字符串名称来读取 与属性相关的值。 3.4文本信息也是API 很多程序不仅可以通过环境变量和命令行参数进行控制,还可以向一段程序输入一段文本作为参数并取得一个返回值。 Unixe 有一个很大的特点,就是它合用了管道技术。 管道是从一个程序进程向另一个程序进单向传送信息的技术。 toString方法的误用 toString返回的字符串URL格式,试图让用户知道,如果不要取得路径应该调用getPath方法。 程序员员想知道错误发生的地方,只能得到到输出的错误信息,然后再去解析输出设备的错误文本信息。 3.5协议 协议是针对文本内容的API。它们用来定义网络传送中的信息格式,所以非常重要。 协议访问控制问题: 对于一个对外开放的套接字来说,其实访问是没有办法进行控制的。 另一个问题是因使用网络协议而被放大,每个网络协议会有多种客房端,协议有多个版本和程序进行交互,且这种多样性还会不断扩散。 3.5协议不一致性问题 服务器上的Subversion软件版本与客户端计算机上所使用的版本不一致。 版本不一致问题 协议不一致问题。 协议演进问题。版本要向后兼容 扩张性和通用性问题。 3.6行为 API可避免去了解一个组件内部具体实现,可以使用其他的黑盒程序模块来组装自己的程序。 不论API的抽象度有多好,API对应的内部实现经常会泄露具体的内容。从而使得这些内部实现也变成了API的一部分对外公开 尽管API具体行为很难控制,但它仍是API契约中非常重要、甚至最重要的一部分。只有组件的行为能够保证稳定,其用户在组装程序时,才能做到用“无绪”方式来替换一个模块。。 3.7国际化支持和信息国际化 很多API设计,并不会考虑到所有人的需求 不同的API会有不同的目
文档评论(0)