多重派遣

上述设计方案肯定是令人满意的。系统内新类型的加入涉及添加或修改不同的类,但没有必要在系统内对代码作大范围的改动。除此以外,RTTI并不象它在RecycleA.java里那样被不当地使用。然而,我们仍然有可能更深入一步,以最“纯”的角度来看待RTTI,考虑如何在垃圾分类系统中将它完全消灭。

为达到这个目标,首先必须认识到:对所有与不同类型有特殊关联的活动来说——比如侦测一种垃圾的具体类型,并把它置入适当的垃圾筒里——这些活动都应当通过多形性以及动态绑定加以控制。

以前的例子都是先按类型排序,再对属于某种特殊类型的一系列元素进行操作。现在一旦需要操作特定的类型,就请先停下来想一想。事实上,多形性(动态绑定的方法调用)整个的宗旨就是帮我们管理与不同类型有特殊关联的信息。既然如此,为什么还要自己去检查类型呢?
答案在于大家或许不以为然的一个道理:Java只执行单一派遣。也就是说,假如对多个类型未知的对象执行某项操作,Java只会为那些类型中的一种调用动态绑定机制。这当然不能解决问题,所以最后不得不人工判断某些类型,才能有效地产生自己的动态绑定行为。

为解决这个缺陷,我们需要用到“多重派遣”机制,这意味着需要建立一个配置,使单一方法调用能产生多个动态方法调用,从而在一次处理过程中正确判断出多种类型。为达到这个要求,需要对多个类型结构进行操作:每一次派遣都需要一个类型结构。下面的例子将对两个结构进行操作:现有的Trash系列以及由垃圾筒(Trash Bin)的类型构成的一个系列——不同的垃圾或废品将置入这些筒内。第二个分级结构并非绝对显然的。在这种情况下,我们需要人为地创建它,以执行多重派遣(由于本例只涉及两次派遣,所以称为“双重派遣”)。

时间: 2024-10-27 20:06:58

多重派遣的相关文章

聚美优品IPO谎言:49%移动端数据存疑 派遣工六成

4月12日,成立仅四年的美妆电商聚美优品向美国证券交易委员会提交了招股书.过去几年中,有一系列的中国企业成功在美国上市.年内也有京东.微博.途牛等相继提交了招股书.其中,微博已成功登陆纳斯达克. 2014年,堪称中国互联网公司的美股元年.意气风发的中国互联网新贵们,正扎堆排队等着美国纽交所或纳斯达克钟声鸣响的那一刻. 美国机构投资者们,往往对中资概念股爱恨交加.爱的是,高速发展的中国公司,总有源源不断的故事和想象力.比如,中国的facebook,中国的google,中国的亚马逊.恨的是,中资概念

如何利用网页浏览进行多重操作?

  浏览器是我们每天都要用到的电脑工具,如果能合理配置浏览器的各项功能,使其能由原来的单行服务变为多项并行服务,定能为我们节省出更多的时间.下面为您介绍如何多重操作设置和技巧. 下面我们以360安全浏览器为例,讲述网络浏览器中的多重操作设置和使用技巧.所用版本为360安全浏览器6.x谷歌内核版. 多引擎轻松由我定 一般来说,一款网络浏览器在安装时总是要指定一种搜索引擎,作为使用该浏览器上网搜索的默认选择.如果要换用另一种引擎,操作起来可能会有点麻烦.使用360安全浏览器则可以由我们自己方便地自定

利用网页浏览进行多重操作

  下面我们以360安全浏览器为例,讲述网络浏览器中的多重操作设置和使用技巧.所用版本为360安全浏览器6.x谷歌内核版. 多引擎轻松由我定 一般来说,一款网络浏览器在安装时总是要指定一种搜索引擎,作为使用该浏览器上网搜索的默认选择.如果要换用另一种引擎,操作起来可能会有点麻烦.使用360安全浏览器则可以由我们自己方便地自定义和选择需要的搜索引擎. 通过"选项→高级设置→管理搜索引擎"命令,或通过点击搜索框下拉菜单小箭头底部的"管理搜索引擎"选项,可以进入常用搜索引

让外拍作品脱颖而出 PS“多重人像”后期技巧

在扎堆的摄影外拍中,通常都是几个甚至十个影友同时拍摄一个模特,客观原因限制导致外拍作品大都场景.模特,甚至构图都大同小异.想让你的活动作品脱颖而出?最简单的方式就是在后期里花点小心思.下面让POCOer惡魔艾粒分享其"多重人像"后期技巧,看他如何制造与众不同的效果. photoshop教程 基本思路: 本次外拍在深林中进行,清新的森林风已让人厌倦,所以特意想表达dizzy的主题,就是晕眩.神魂颠倒的意思.顺着这个思路,后期想做出虚幻.类似灵魂出鞘的效果,用多个人重合的方式去表达. 操作

微信公众号 文本 菜单-微信普通公众号如何实现多重文本菜单?

问题描述 微信普通公众号如何实现多重文本菜单? 微信普通公众号如何实现多重文本菜单? 微信普通公众号如何实现多重文本菜单?比如: 首先显示文本菜单: 1. a 2. b 3. c 在输入2之后,后台列出2下的新菜单列表: 1. ba 2. bb 3. bc 再输入3之后,后台列出3下的新菜单列表,以此类推 这个功能该如何实现呢? 解决方案 下一级你可以指定为2.1 再一级 2.1.1 解决方案二: 很简单,微信公众号提供了对特定关键字进行特定回复的接口 你只要自定义这些特定关键字和需要回复的内容

CSS3网页制作技巧:css3多重背景

文章简介:css3以下版本的background只能单独对一张图片进行背景设置.平铺方式.背景位置.而在css3赋予了它更大的权利,可以设置更多背景图片,这就是今天要说的css3多重背景. 对于background不必多做解释了,如果不了解的可以单独论坛发帖. css3以下版本的background只能单独对一张图片进行背景设置.平铺方式.背景位置.而在css3赋予了它更大的权利,可以设置更多背景图片,这就是今天要说的css3多重背景. 多重背景语法:background:背景,背景,背景: 1

简洁的多重查询解决方案

我们经常会遇到多重查询问题,而长长的SQL语句往往让人丈二和尚摸不着头脑.特别是客户端部分填入查询条件时,如用普通方法将更是难上加难. 以下巧妙地利用"where 1=1"的恒等式(事实上很多,让它值为TRUE即可)解决此问题. 'subject 信息标题 'company 发布信息的公司名称 'content 发布信息的内容 'address 公司地址 'infomation 公司简介 'note 相关说明 以上值均由FORM提交,然后通过:subject=trim(Request.

ThinkPHP学习(四)volist标签高级应用之多重嵌套循环

Action代码: public function index(){ $prod = I("get.prod_en"); $id = I("get.id", 0, "int"); if ($prod == ""){ $serviceProduct = array();//多重循环遍历的数组 //数据保存在两张表中,这里通过循环初始化$serviceProduct数组 $service = M("product_cla

使用CSS2.1的多重背景效果和边框效果

网页制作Webjx文章简介:使用CSS2.1的多重背景效果和边框效果. 在单个HTML元素上利用CSS2.1实现拥有3张背景图片和2张内容图效果,或者多重边框的效果.这种渐进增强的方式适用于所有支持CSS2.1伪元素及其定位属性的所有浏览器.不需要CSS3的支持. 演示:使用CSS2.1的多背景 演示:使用CSS2.1的多边框 支持的浏览器:Firefox 3.5+, Safari 4+, chrome4+, opera10+, IE8+ 是如何实现的呢? 从本质上讲,我们所创建的伪对象(:be