- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想通过使某些类可观察来促进我的 PHP 代码中的松散耦合。 Symfony EventDispatcher component看起来很有希望,SPL 也是如此 SplObserver/SplSubject对类。
做到这一点的最佳方法是什么? 我可以看到几种不同的可能性:
(1) 在每个可观察类中注入(inject)一个 EventDispatcher 实例(跟踪全局 EventDispatcher 实例):
class Foo
{
public function __construct($dispatcher)
{
$this->dispatcher = $dispatcher;
}
public function bar()
{
$this->dispatcher->dispatch(...);
}
}
class Foo extends EventDispatcher
{
public function bar()
{
$this->dispatch(...);
}
}
最佳答案
免责声明:此答案与 Symfony EventDispatcher 无关,但与您的问题有关。如果你只是想要一个答案,你可以跳过(有点)学术讨论并跳到最后。
讨论
FACT: Increasing application size means a congruent increase in complexity.
Foo
当
Bar
对象需要执行某些特定操作时对象被创建。此外,随着您的对象开始相互提供互补的功能,在不以非常紧密耦合的对象结束的情况下维护必要的关系变得越来越困难。
Logger
的主题,那么您已经为自己创造了很多工作。观察者对象。另外,
恕我直言 此方法有时会通过将可能更准确地描述为主题的实际依赖项的内容移出主题构造函数的方法签名来模糊您的 API。
"Having an eventDispatcher that's everywhere in your app and does almost everything can make your code harder to test/understand/maintain etc (it can approach a God object)"
关于php - 使用 Symfony 的 EventDispatcher 组件的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9776364/
从 RN 版本 0.63.2 升级到 0.65.0-rc.3 后无法构建 iOS 应用程序。我收到此错误: In file included from /Users/.../ReactNativePr
有什么方法可以获取EventDispatcher的已注册监听器列表吗? 我知道EventDispatcher具有hasEventListener方法来告诉您是否注册了任何监听器,但是是否有一种简单的方
一个简单的问题..我想知道你们什么时候在你们的类里面扩展了 EventDispatcher。在我看来,只要我们有导入事件包,我们就可以毫无问题地分发事件......我看到有时人们在他们的类(class
我经常从头开始用 JS 实现自己的 EventDispatcher 类。我想在浏览器的某处有一些针对 DOM 元素的实现,但 EventDispatchers 甚至对其他与 DOM 完全无关的东西也很
我遇到了一些奇怪的事情,但也许其他人以前遇到过。 我有一个基类,它不扩展任何东西。让我们称之为... public class FooBar { //... } 但我想绑定(bind)它暴露的
这看起来非常简单,但我对 JavaScript 有点陌生并且很困难。文档给出了这个例子: // Adding events to a custom object var Car = function
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我用的是cocos2d-x 3.0 RC1,有以下问题。据我所知,cocos2d-x 有一个单一的(集中的)事件分发器,它被实现为一个单例,这样我就可以从任何地方向任何地方发送事件。现在在最终版本中它
我希望在我的应用程序中实现观察者模式(不是 php,这就是为什么不使用 Symfony 的组件)。 我发现很奇怪,尽管组件没有使用类来传播或监听事件,因为这将允许使用继承来监听整个事件树。 我看不到使
我正在将一个 ActionScript 应用程序移植到 JavaScript,并且正在尝试完善我的 EventDispatcher 实现。 我最近遇到的一个问题是,我附加的回调没有被正确的 this
我尝试用数据实现一个简单的类型安全事件调度程序,即除了事件之外还可以传递任何数据。我发现了很多类型安全的事件调度程序问题或任何其他示例,但似乎没有人能解决我的问题。这是我到目前为止得到的: publi
我想通过使某些类可观察来促进我的 PHP 代码中的松散耦合。 Symfony EventDispatcher component看起来很有希望,SPL 也是如此 SplObserver/SplSubj
使用react-native run-ios启动应用程序时,它在模拟器上显示错误无法找到EventDispatcher的模块 最佳答案 停止远程 JS 调试,然后重新加载应用 它会给您相应的错误消息,
我有一个 JAVA6 GUI 处理数据导入到我们的数据库。我已经实现了一个工作 JProgressBar。我知道对 GUI 所做的更改必须通过事件分派(dispatch)线程来完成——我认为我没有这样
Bloomberglp.Blpapi.Session 有一个如下所示的构造函数: public Session(SessionOptions, Bloomberglp.Blpapi.EventHand
来自 Symfony2 的 EventDispatcher 组件文档: The Symfony2 EventDispatcher component implements the Mediator p
我想知道我是否应该使用 Symfony EventDispatcher Component用于在我的 DDD 应用程序中处理领域事件。 对我来说,当一个经过良好测试的组件可用时,从头开始重新实现一个事
我想知道在 EntityRepository 类中注入(inject) EventDispatcher 的最佳实践是什么。 最佳答案 首先,使用 global 是一个 very bad practic
通常是not recommended捕获一般异常,例如 Exception 或 Throwable,因为您承担了处理您不知道如何处理的问题(例如内存不足错误)的负担。然而,在“稳健”的观察者模式实现中
当尝试安装 Rackspace 包时(composer require rackspace/php-opencloud),出现以下错误找不到“Symfony\Component\EventDispat
我是一名优秀的程序员,十分优秀!