- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
只公开你要公开的内容
5
第五 章
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
作为API,如何公开内部的相关数据和结构,是涉及经验问题,怎样既要保证需要用的公开出去,同时把要隐含的信息隐含起来。
API公开的内容越少越好。
一般设计者认为:终究会有些人用得上这些功能,只要功夫深有人用,当然就要公开,这这是错的。
应该是有必要才公开
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
方法添加容易与移去难
设计者带来的问题往往远远多于其解决的问题。向API中添加一个新方法是很容易的一件事,但与此相反,想从API中移徐一个方法却非常困难。一个API对外提供的功能越多,那么为保持向后兼容性所做的工作也就越多。提供的功能越多留给具体实现的空间也就越少。如果API公开的不必要的内容越多,可改进的空间也就越少。
方法的添加与移去
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
1 用例不具有说服力
2内部特性存在
对于API设计来说,其水平越差,所编写的API越会公开大量不必要的内容。这种设计方式没有任何规划,最终把相关的API给捣成一堆浆糊。
他们所写的API可能会被动他人误用。一个人设计的API长,他设计的API公开的内容就会越少。
不应该公开的
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
在发布API的第一个版本之前,将不必要时的内容从API中移走。每公开的一个API,意味着你对该API的用户做出了一个未来的兼容性承诺。最简单、有效的解决方法就是,一切都以用户为中心,但要逐步来满足他们的需求。
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
5.1 方法优于字段
1.类中的字段不公开
2.利用SET/GET获得函数
3.虚拟机效果:速度
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
1.类中的字段不公开
设计技巧就是:不要把类中的字段直接对外公布,而应该放置在内部。只能通过相应的getter/setter方法来访问字段
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
2.虚拟机
解释执行可以比编译执行还要快。Java虚拟机的性能已经大幅提高。虚拟机首先解释执行类文件中的内容,然后监控程序的执行情况。与静态编译不同的是,它不进行预连接,也不根据通用的环境进行编译,而是由HotSpot编译器根据本地操作系统、硬件等环境在程序执行的时候进行优化处理。
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
3.动态编译代码要比静态编译代码执行快
一个好处就是HotSpot编译器可以将虚方法进行内联。很清楚这样做是需要去访问内存和进行跳转才能实现。传统编译生成代码相比,就少了定位、跳转等指令环节,执行速度自然就更快了。执行到一定的次数后,就把对虚方法的调用转成实际方法的入口。而无须先定位再跳转。由于参考了具体的运行环境,其运行性能要比静态编码高出很多
文档评论(0)