摘要: 目的 访问者模式可以让你将对象操作外包给其他对象。 这样做的最主要原因就是关注(数据结构和数据操作)分离。但是被访问的类必须定一个契约接受访问者。 (详见例子中 Role::accept 方法) 契约可以是一个抽象类也可以就是一个接口。在此情况下,每个访问者必须自行选择调用访问者的哪个方法。 UML 阅读全文
posted @ 2020-09-21 20:26 phpyu 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 目的 模板方法模式是一种让抽象模板的子类「完成」一系列算法的行为策略。 众所周知的「好莱坞原则」:「不要打电话给我们,我们会打电话给你」。这个类不是由子类调用的,而是以相反的方式。怎么做?当然很抽象啦! 换而言之,它是一种非常适合框架库的算法骨架。用户只需要实现子类的一种方法,其父类便可去搞定这项工 阅读全文
posted @ 2020-09-21 17:22 phpyu 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 目的 分离「策略」并使他们之间能互相快速切换。此外,这种模式是一种不错的继承替代方案(替代使用扩展抽象类的方式)。 例子 简化版的的单元测试:例如,在使用文件存储和内存存储之间互相切换 对一个对象列表进行排序,一种按照日期,一种按照 id UML图 ★官方PHP高级学习交流社群「点击」管理整理了一些 阅读全文
posted @ 2020-09-21 16:44 phpyu 阅读(236) 评论(0) 推荐(0) 编辑