doc 文献翻译-对象的创建和存在时间 ㊣ 精品文档 值得下载

🔯 格式:DOC | ❒ 页数:11 页 | ⭐收藏:0人 | ✔ 可以修改 | @ 版权投诉 | ❤️ 我的浏览 | 上传时间:2022-06-24 19:47

文献翻译-对象的创建和存在时间

能根据自己的需要选择适当的类型。其中包括集队列散列表树堆栈等等。所有集合都提供了相应的读写功能。将样东西置入集合时,采用的方式是十分明显的。有个叫作推添加或其他类似名字的函数用于做这件事情。但将数据从集合中取出的时候,方式却并不总是那么明显。如果是个数组形式的实体,比如个矢量,那么也许能用索引运算符或函数。但在许多情况下,这样做往往会无功而返。此外,单选定函数的功能是非常有限的。如果想对集合中的系列元素进行操纵或比较,而不是仅仅面向个,这时又该怎么办呢办法就是使用个继续器,它属于种对象,负责选择集合内的元素,并把它们提供给继承器的用户。作为个类,它也提供了级抽象。利用这级抽象,可将集合细节与用于访问那个集合的代码隔离开。通过继承器的作用,集合被抽象成个简单的序列。继承器允许我们遍历那个序列,同时毋需关心基础结构是什么换言之,不管它是个矢量个链接列表个堆栈,还是其他什么东西。这样来,我们就可以灵活地改变基础数据,不会对程序里的代码造成干扰。最开始在和版中提供的是个标准继承器,名为枚举,为它的所有集合类提供服务。新增个更复杂的集合库,其中包含了个名为的继承器,可以做比老式的更多的事情。从设计角度出发,我们需要的是个全功能的序列。通过对它的操纵,应该能解决自己的问题。如果种类型的序列即可满足我们的所有要求,那么完全没有必要再换用不同的类型。有两方面的原因促使我们需要对集合作出选择。首先,集合提供了不同的接口类型以及外部行为。堆栈的接口与行为与队列的不同,而队列的接口与行为又与个集或列表的不同。利用这个特征,我们解决问题时便有更大的灵活性。其次,不同的集合在进行特定操作时往往有不同的效率。最好的例子便是矢量和列表的区别。它们都属于简单的序列,拥有完全致的接口和外部行为。但在执行些特定的任务时,需要的开销却是完全不同的。对矢量内的元素进行的随机访问存取是种常时操作无论我们选择的选择是什么,需要的时间量都是相同的。但在个链接列表中,若想到处移动,并随机挑选个元素,就需付出惨重的代价。而且假设个元素位于列表较远的地方,找到它所需的时间也会长许多。但在另方面,如果想在序列中部插入个元素,用列表就比用矢量划算得多。这些以及其他操作都有不同的执行效率,具体取决于序列的基础结构是什么。在设计阶段,我们可以先从个列表开始。最后调整性能的时候,再根据情况把它换成矢量。由于抽象是通过继承器进行的,所以能在两者方便地切换,对代码的影响则显得微不足道。最后,记住集合只是个用来放置对象的储藏所。如果那个储藏所能满足我们的所有需要,就完全没必要关心它具体是如何实现的这是大多数类型对象的个基本概念。如果在个编程环境中工作,它由于其他因素比如在下运行,或者由垃圾收集器带来了开销产生了内在的开销,那么矢量和链接列表之间在系统开销上的差异就或许不是个大问题。我们可能只需要种类型的序列。甚至可以想象有个完美的集合抽象,它能根据自己的使用方式自动改变基层的实现方式。单根结构在面向对象的程序设计中,由于的引入而显得尤为突出的个问题是所有类最终是否都应从单独个基础类继承。在中与其他几乎所有语言样,对这个问题的答案都是肯定的,而且这个终级基础类的名字很简单,就是个。这种单根结构具有许多方面的优点。单根结构中的所有对象都有个通用接口,所以它们最终都属于相同的类型。另种方案就象那样是我们不能保证所有东西都属于相同的基本类型。从向后兼容的角度看,这方案可与模型更好地配合,而且可以认为它的限制更少些。但假期我们想进行纯粹的面向对象编程,那么必须构建自己的结构,以期获得与内建到其他语言里的同样的便利。需添加我们要用到的各种新类库,还要使用另些不兼容的接口。理所当然地,这也需要付出额外的精力使新接口与自己的设计方案配合可能还需要多重继承。为得到额外的灵活性,付出这样的代价值得吗当然,如果真的需要如果早已是专家,如果对有难舍的情结那么就真的很值得。但假如你是名新手,首次接触这类设计,象那样的替换方案也许会更省事些。单根结构中的所有对象比如所有对象都可以保证拥有些特定的功能。在自己的系统中,我们知道对每个对象都能进行些基本操作。个单根结构,加上所有对象都在内存堆中创建,可以极大简化参数的传递这在里是个复杂的概念。利用单根结构,我们可以更方便地实现个垃圾收集器。与此有关的必要支持可安装于基础类中,而垃圾收集器可将适当的消息发给系统内的任何对象。如果没有这种单根结构,而且系统通过个句柄来操纵对象,那么实现垃圾收集器的途径会有很大的不同,而且会面临许多障碍。由于运行期的类型信息肯定存在于所有对象中,所以永远不会遇到判断不出个对象的类型的情况。这对系统级的操作来说显得特别重要,比如违例控制而且也能在程序设计时获得更大的灵活性。集合库与方便使用集合由于集合是我们经常都要用到的种工具,所以个集合库是十分必要的,它应该可以方便地重复使用。这样来,我们就可以方便地取用各种集合,将其插入自己的程序。提供了这样的个库,尽管它在和中都显得非常有限的集合库则无疑是个杰作。下溯造型与模板通用性为了使这些集合能够重复使用,或者再生,提供了种通用类型,以前曾把它叫作。单根结构意味着所有东西归根结底都是个对象,所以容纳了的个集合实际可以容纳任何东西。这使我们对它的重复使用变得非常简便。为使用这样的个集合,只需添加指向它的对象句柄即可,以后可以通过句柄重新使用对象。但由于集合只能容纳,所以在我们向集合里添加对象句柄时,它会上溯造型成,这样便丢失了它的身份或者标识信息。再次使用它的时候,会得到个句柄,而非指向我们早先置入的那个类型的句柄。所以怎样才能归还它的本来面貌,调用早先置入集合的那个对象的有用接口呢在这里,我们再次用到了造型。但这次不是在分级结构中上溯造型成种更通用的类型。而是下溯造型成种更特殊的类型。这种造型方法叫作下溯造型。举个例子来说,我们知道在上溯造型的时候,圆属于几何形状的种类型,所以上溯造型是安全的。但我们不知道个到底是还是,所以很难保证下溯造型的安全进行,除非确切地知道自己要操作的是什么。但这也不是绝对危险的,因为假如下溯造型成的东西,会得到我们称为违例的种运行期。我们稍后即会对此进行解释。但在从个集合提取对象句柄时,必须用种方式准确地记住它们是什么,以保证下溯造型的正确进行。下溯造型和运行期检查都要求花额外的时间来运行程序,而且程序员必须付出额外的精力。既然如此,我们能不能创建个智能集合,令其知道自己容纳的类型呢这样做可消除下溯造型的必要以及潜在的。答案是肯定的,我们可以采用参数化类型,它们是编译器能自动定制的类,可与特定的类型配合。例如,通过使用个参数化集合,编译器可对那个集合进行定制,使其只接受,而且只提取。参数化类型是个重要的组成部分,这部分是没有单根结构的缘故。在中,用于实现参数化类型的关键字是模板。目前尚未提供参数化类型,因为由于使用的是单根结构,所以使用它显得有些笨拙。但这并不能保证以后的版本不会实现,因为这个词已被保留到将来实现在语言中,被用来实现它的模板。采取的这种关键字保留机制其实经常让人摸不着头脑,很难断定以后会发生什么事情。附外文原文

下一篇
文献翻译-对象的创建和存在时间第1页
1 页 / 共 11
文献翻译-对象的创建和存在时间第2页
2 页 / 共 11
文献翻译-对象的创建和存在时间第3页
3 页 / 共 11
文献翻译-对象的创建和存在时间第4页
4 页 / 共 11
文献翻译-对象的创建和存在时间第5页
5 页 / 共 11
文献翻译-对象的创建和存在时间第6页
6 页 / 共 11
文献翻译-对象的创建和存在时间第7页
7 页 / 共 11
文献翻译-对象的创建和存在时间第8页
8 页 / 共 11
文献翻译-对象的创建和存在时间第9页
9 页 / 共 11
文献翻译-对象的创建和存在时间第10页
10 页 / 共 11
文献翻译-对象的创建和存在时间第11页
11 页 / 共 11
  • 内容预览结束,喜欢就下载吧!
温馨提示

1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。

2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。

3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。

4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。

5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。

  • 文档助手,定制查找
    精品 全部 DOC PPT RAR
换一批