我正在调查与访客模式有关的其他问题,但无法理解访客模式中双重调度的实现。
请参考链接 访客模式
访客模式中的双重调度如何工作?
元素对象的accept
方法接收一个访问者对象,并visit
在该访问者对象上调用该方法。由于访问者对象具有多种visit
方法,因此根据元素类型visit
调用适当的方法。在这里,我们有两个调用(
double dispatch ),它们指定 元素 和 元素 的正确 操作 (基于其类型)。
我有一个关于访客模式的问题!假设我有一个数据结构类,在它里面我有一个与类2的has-a关系。Class2有特定的类层次结构,大约有10个类。 我需要创建Class1实例列表,并发送访客请求。根据类别2参观(类别1)。我不能在class2中使用迭代,因为我需要class1上下文中的变量。 现在我在考虑接受Class1对象的dispatcher,然后在这个类的基础上检查class2的类型并调用一些东西
在Visitor模式中,我们使用一个访问者类来更改元素类的执行算法。 通过这种方式,元素的执行算法可以随着访问者的变化而变化。 此模式属于行为模式类别。 根据模式,元素对象必须接受访问者对象,以便访问者对象处理元素对象上的操作。 实现 (Implementation) 我们将创建一个定义接受操作的ComputerPart接口。 Keyboard , Mouse , Monitor和Computer
问题内容: 谁能详细解释在我的测试代码段中使用实例时重载方法被调用的原因? 这里涉及虚拟方法或Java中方法重载/解析的特殊性吗?是否直接引用Java Lang Spec?哪个术语描述了这种行为?非常感谢。 问题答案: JLS在§8.4.9重载中规定: 调用方法时(第15.12节),实际参数(和任何显式类型参数)的数量以及参数的 编译时类型 在编译时用于确定将要调用的方法的签名( §15.12.2
问题内容: 使用double时,如何使用模数运算符处理Java的怪异行为? 例如,你所期望的结果是(事实上,谷歌说,我不是要疯了),但是当我在Java中,我得到运行它。 我了解这是Java存储和处理方式加倍的结果,但是有没有解决的方法? 问题答案: 如果需要精确的结果,请使用精确的类型: 为什么是3.8000 … 003?因为Java使用FPU来计算结果。3.9不可能以IEEE双精度表示法精确存储
本文向大家介绍单工,半双工和全双工传输模式之间的区别,包括了单工,半双工和全双工传输模式之间的区别的使用技巧和注意事项,需要的朋友参考一下 在电子设备中,发送方和接收方之间的数据传输遵循特定模式,也称为传输模式。根据发送数据和接收数据的性质,我们可以区分传输模式为单工,半双工和全双工。 以下是单工,半双工和全双工传输模式之间的重要区别。 序号 键 单工模式 半双工模式 全双工模式 1 定义 单工传
考虑经典的“字数统计”程序。它计算某个目录中所有文件的字数。Master接收一些目录,并在Worker actors之间分割作业(每个Worker处理一个文件)。这是伪代码: 但是我想按计划运行这个字数统计程序(例如每1分钟),提供不同的目录进行扫描。 Akka为调度消息传递提供了很好的方式: 但上述调度程序的问题始于调度程序按记号发送新消息,但之前的消息尚未处理(例如,我发送消息扫描某个大目录,