课程名称:大话PHP设计模式
课程章节:观察者模式
讲师:Rango
https://www.imooc.com/u/1033307/courses?sort=publish
课程内容:
观察者模式
1. 观察者模式( Observer ),当一个对象状态发生改变时,依赖它的对象全部会收到通知,并自动更新
2. 场景:一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理逻辑。当更新的逻辑增多后,代码会变得难以维护。这种方式是耦合的,入侵式的,增加新的逻辑需要修改事件主体的代码
3. 观察者模式实现了低耦合,非入侵式的通知与更新机制
原型模式
1. 与工厂模式作用类似,都是用来创建对象
2. 与工厂模式的实现不懂,原型模式是首先创建好一个原型对象,然后通过clone原型对象来创建新的对象。这样就免去了类创建是重复的初始化操作
3. 原型模式适用于大对象的创建。创建一个大对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可。
装饰器模式
装饰器(Decorator),可以动态地添加修改类的功能一个类提供了一项功能,如果要在修改并添加额外的功能,传统的编程模式,需要写一个子类继承它,并重新实现类的方法
使用装饰器模式,仅需要在运行时添加一个装饰器对象即可实现,可以实现最大的灵活性。
迭代器模式
1. 迭代器模式,在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素
2. 相比传统的编程模式,迭代器模式可以隐藏遍历元素所需的操作
应用场景
遍历数据库表,拿到所有的user对象,然后用佛 foreach 循环,在循环的过程中修改某些字段的值。
课程收获:
一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理的逻辑。当更新的逻辑增多之后,代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑需要修改事件的主体代码。