Skip to content

Commit e0fe4de

Browse files
committed
docs: Laravel 观察者模式
1 parent db3518e commit e0fe4de

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

laravel/readme/30. 2019-07-26-Laravel事件之观察者模式.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
## Laravel事件之观察者模式
1+
## Laravel 事件之观察者模式
22

33
## 观察者模式
44

5-
Laravel的事件提供了一个简单的观察者实现,能够订阅和监听应用中发生的各种事件。
5+
Laravel 的事件提供了一个简单的观察者实现,能够订阅和监听应用中发生的各种事件。
66

77
既然用到观察者实现,那我们先来说下什么是观察者
88

9-
观察者模式(Observer),当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新。
9+
观察者模式 (Observer), 当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新。
1010

11-
场景:一个事件发生后,要执行一连串更新操作.传统的编程方式,就是在事件的代码之后直接加入处理逻辑,当更新得逻辑增多之后,代码会变得难以维护.这种方式是耦合的,侵入式的,增加新的逻辑需要改变事件主题的代码
11+
场景: 一个事件发生后, 要执行一连串更新操作. 传统的编程方式, 就是在事件的代码之后直接加入处理逻辑, 当更新得逻辑增多之后, 代码会变得难以维护. 这种方式是耦合的, 侵入式的, 增加新的逻辑需要改变事件主题的代码
1212

13-
观察者模式实现了低耦合,非侵入式的通知与更新机制
13+
观察者模式实现了低耦合, 非侵入式的通知与更新机制
1414

1515
具体代码实现
1616

@@ -27,24 +27,24 @@ interface ObServer
2727
}
2828

2929
/**
30-
* 观察者1
30+
* 观察者 1
3131
*/
3232
class ObServer1 implements ObServer
3333
{
3434
public function update($event_info = null)
3535
{
36-
echo "观察者1 收到执行通知 执行完毕!\n";
36+
echo "观察者 1 收到执行通知 执行完毕!\n";
3737
}
3838
}
3939

4040
/**
41-
* 观察者1
41+
* 观察者 1
4242
*/
4343
class ObServer2 implements ObServer
4444
{
4545
public function update($event_info = null)
4646
{
47-
echo "观察者2 收到执行通知 执行完毕!\n";
47+
echo "观察者 2 收到执行通知 执行完毕!\n";
4848
}
4949
}
5050

@@ -57,13 +57,13 @@ class ObServer2 implements ObServer
5757
class Event
5858
{
5959

60-
//增加观察者
60+
// 增加观察者
6161
public function add(ObServer $ObServer)
6262
{
6363
$this->ObServers[] = $ObServer;
6464
}
6565

66-
//事件通知
66+
// 事件通知
6767
public function notify()
6868
{
6969
foreach ($this->ObServers as $ObServer) {
@@ -76,25 +76,25 @@ class Event
7676
*/
7777
public function trigger()
7878
{
79-
//通知观察者
79+
// 通知观察者
8080
$this->notify();
8181
}
8282
}
8383

8484

85-
//创建一个事件
85+
// 创建一个事件
8686
$event = new Event();
87-
//为事件增加旁观者
87+
// 为事件增加旁观者
8888
$event->add(new ObServer1());
8989
$event->add(new ObServer2());
90-
//执行事件 通知旁观者
90+
// 执行事件 通知旁观者
9191
$event->trigger();
9292

9393
```
9494

95-
## Laravel中使用事件
95+
## Laravel 中使用事件
9696

97-
在laravel中事件使用特别简单,我们可以通过
97+
在 laravel 中事件使用特别简单,我们可以通过
9898

9999
```bash
100100

@@ -106,11 +106,11 @@ laravel 事件类保存在 app/Events 目录中,而这些事件的的监听器
106106

107107
```php
108108

109-
// 在程序需要触发事件的地方通过event()触发事件,比如注入给用户发送站内信的事件,发送邮件的事件
109+
// 在程序需要触发事件的地方通过 event() 触发事件,比如注入给用户发送站内信的事件,发送邮件的事件
110110

111111
event(new SendMailEvent());
112112

113113
```
114114

115115

116-
[示例代码下载链接](https://github.com/cxp1539/laravel-core-learn/blob/master/code/Class6.php)
116+
[示例代码下载链接](https://github.com/cxp1539/laravel-core-learn/blob/master/code/Class6.php)

0 commit comments

Comments
 (0)