之前的示例代码,解耦不够明确
相关信息:
- 类型:文档文章
- 文章: Laravel事件之观察者模式
- 文档: 《深入 Laravel 核心(5.5)》
此投稿已在 4年前 合并。
内容修改:
Old | New | Differences |
---|---|---|
79 | 79 | } |
80 | 80 | } |
81 | 81 | |
82 | // 服务类 去实现事件的创建和触发,不关心具体多少调用方需要监听 | |
83 | class DemoService | |
84 | { | |
85 | public function demo() | |
86 | { | |
87 | //创建一个事件 | |
88 | $event = new Event(); | |
89 | ||
90 | ... | |
91 | ||
92 | //执行事件 通知旁观者 | |
93 | $event->trigger(); | |
94 | } | |
95 | } | |
82 | 96 | |
83 | //创建一个事件 | |
84 | $event = new Event(); | |
85 | //为事件增加旁观者 | |
86 | $event->add(new ObServer1()); | |
87 | $event->add(new ObServer2()); | |
88 | //执行事件 通知旁观者 | |
89 | $event->trigger(); | |
97 | // 调用方,调用方仅仅需要知道服务类创建了哪些事件 | |
98 | class DoService | |
99 | { | |
100 | public function do() | |
101 | { | |
102 | //为事件增加旁观者 | |
103 | $event->add(new ObServer1()); | |
104 | $event->add(new ObServer2()); | |
105 | } | |
106 | } | |
107 | ||
108 | ||
109 | ||
90 | 110 | |
91 | 111 | ``` |
92 | 112 |