- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于那些熟悉中介者模式的人...
我想在Delphi中实现Mediator模式,但是Delphi编译器无法处理所需的循环引用。
查看“设计模式”中的原始 GOF 图,Mediator 具有对每个 Colleague 的引用,但许多 Colleague 对象都具有对 Mediator 的引用。
这在大多数语言中都不是问题,但我的 Delphi 编译器给我“F2047 循环单元引用...”
会this approach ,使用接口(interface),有什么用吗? (看起来很复杂)
我使用的是Delphi 2010
[解决方案摘要]
总结一下已接受的答案:在允许循环引用的语言中,您可以省略抽象 Mediator 类(如 GoF 第 278 页的“实现”部分中所述)。 在没有抽象 Mediator 类的情况下,在 Delphi 中实现 Mediator 的唯一方法是将所有类放在一个单元中。
否则,除了具体子类之外,您还需要一个额外的抽象 Mediator 基类。
这三个单元的 Uses 子句如下所示:
ConcreteColleage1 使用中介器
ConcreteMediator 使用调解器、ConcreateColleague1
中介者(两者都不使用)
没有循环引用!
最佳答案
使用接口(interface)当然可以帮助减少单元之间的依赖性。另一种方法是使用抽象基类来定义类之间的交互方法,然后将具体的后代放在单独的单元中。
参见:How to avoid circular unit reference?有关如何避免 Delphi 中的循环引用的更多信息。
关于delphi - 在Delphi中实现Mediator模式而不会出现循环引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4790402/
任何人都希望了解调用和发送调解器之间的区别以及使用这两个调解器的用例。 最佳答案 另一个特点是标注中介正在阻塞,发送 调解员和调用 调解员没有阻止。这个答案是关于 WSO2 版本直到 4.8.0 关于
我在我的项目中使用 firebase 适配器,现在我为奖励广告集成了 admob 它工作正常,但完成后的每个视频都会抛出以下错误... java.lang.ClassCastException:
引言 中介者,何为中介者,顾名思义就是我们的在处理A和B之间的关系的时候,引入一个中间人,来处理这两者之间的关系,例如生活中我们需要去租房,买房,都会有中介,来处理房东和租客之间的协调关系,
引言 中介者,何为中介者,顾名思义就是我们的在处理A和B之间的关系的时候,引入一个中间人,来处理这两者之间的关系,例如生活中我们需要去租房,买房,都会有中介,来处理房东和租客之间的协调关系,
如何设置 PipelineBehavior 的优先级?我有 3 个管道。我想先执行 AuthorizationPipeline。如果 AuthorizationPipeline 抛出任何 Securi
我有几个类通过另一个类相互通信(类似于调解器模式)。 每个类在创建和销毁时都会打印一条消息: 当我创建一个 Mediator 对象时,Mediator 持有对所有其他对象的引用,而所有对象都持有对 M
代码如下: <?php /** * 中介者模式 * * 用一个中介对象来封装一系列的对象交互,使各对象不需要显式地相互引用从而使其耦合松散,
中介者模式(Mediator Pattern)提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护 中介者模式是用来降低多个对象和类之间的通信复杂性 中介者模式属于行为型模
我正在开发一个 HTML/JS 中介器,当用户在字段中输入文本时,该中介器会过滤 data_model。使用了 window.onload = init,并花了四个小时试图找出为什么浏览器中的“thi
我们正在尝试一种场景,我们希望遍历节点列表并使用每个单独的请求负载对某些服务进行 POST 调用。我们看到迭代中介实际上在该调用中发送了两个元素,并且这会导致 API 端出现问题。 我有一个本地部署的
来自文档: addSource (LiveData source, Observer onChanged) Starts to listen the given source LiveData, on
本文实例讲述了PHP设计模式之中介者模式(Mediator Pattern)。分享给大家供大家参考,具体如下: 咱们先来看下中介者模式(Mediator Pattern)的定义,它就是,用一个中介
Java设计模式的中介者模式是行为模式之一。定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不需要显式地相互引用,从而使其耦合性松散,并且可以独立地改变他们之间的交互。 如下图所示:
我知道Adapter是一种结构模式,Mediator是一种行为模式。但据我了解,他们俩正在做的事情是连接两个(或更多)其他类,这些类对于直接通信可能不兼容(不太可维护)。 有人可以对这两者进行仔细比较
我想迭代 json 消息的结果数组 { "results":[ { "category":"mdl", "subcategory":"ip",
我有一个网页 (php),它根据组织的注册成员使用的外部上传内容处理一系列 ajax 表单和简单的 js 隐藏/显示 div。为了构建一个更易于维护和扩展的站点,我一直在研究使用架构模式来防止无休止的
我想在我的 Android 应用中集成以下移动广告网络。 Admob Revmob 铅 bolt 亚马逊 API 找了很多终于知道在admob mediation中使用customevents可以集成
门面和中介设计模式有什么区别。我想了解在哪种情况下在这两种模式之间选择哪种设计模式。我浏览了以下链接,发现它们在用例方面是相同的。 门面设计模式:http://www.tutorialspoint.c
最近我介绍了命令调度程序模式,它可以帮助命令与我们项目中的命令处理程序分离,该模式基于域驱动设计方法和 CQRS 模式。 不管怎样,我把它和 Mediator 设计模式搞混了。 Robert Harv
有人可以举一个“中介者模式”在现实世界中有用的用例吗? 最佳答案 Mediator是一种添加第三方对象以控制一组(2 个或更多)对象之间交互的方法。 您能找到的最简单的示例是 Chat Room例如,
我是一名优秀的程序员,十分优秀!