PHP 中的设计模式说明

Clarification on design patterns in PHP

我对那里的设计模式知之甚少。事实上,我从来没有使用过一个,因为我总是去原始编码。但我认为是时候丰富我的设计模式知识了。特别是我想了解更多关于工厂、单例和策略设计模式。我当然用谷歌搜索了它们,但我仍然不清楚它们的区别、如何实现它们等。

如果有人可以向我推荐一些我可以阅读更多内容的好文档,那将非常有帮助。

在此先感谢您的帮助。

https://sourcemaking.com/design_patterns 是一个非常有用的网站,有很多解释和代码示例,包括 PHP 的。我在下面用自己的话添加了非常简短的摘要。免责声明:因为它们的摘要很短,所以可能不是很准确,但可以让您了解模式的比较方式。

工厂方法https://sourcemaking.com/design_patterns/factory_method
简而言之:您有一个单独的 class 负责创建某个 class 的实例。这是为了确保 class 始终构造为 'in the right way'.

单例模式https://sourcemaking.com/design_patterns/singleton
简而言之:单例class只有一个实例是可能的,class本身有一个存储实例的静态class变量,以及一个returns存储的静态方法实例,如果尚未创建,则创建一个。

策略模式https://sourcemaking.com/design_patterns/strategy
简而言之:如果有多种方法可以解决某个问题,请提供一组 classes,每个包含一个针对该问题的实现,让客户决定使用哪个实现。