一起聊聊PHP的几个设计模式
工厂模式 1、简单工厂模式 目的 简单工厂模式是一个精简版的工厂模式 。 它与静态工厂模式最大的区别是它不是『静态』的。因为非静态,所以你可以拥有多个不同参数的工厂,你可以为其创建子类。甚至可以模拟(Mock)他,这对编写可测试的代码来讲至关重要。 这也是它比静态工厂模式受欢迎的原因! UML 图 代码 SimpleFactory.php Bicycle.php 用法 测试 Tests/SimpleFactoryTest.php 2、静态工厂模式 目的 与抽象工厂模式类似,此模式用于创建一系列相关或相互依赖的对象。 『静态工厂模式』与『抽象工厂模式』的区别在于,只使用一个静态方法来创建所有类型对象, 此方法通常被命名为 factory 或 build。 例子 Zend Framework: Zend_Cache_Backend 或 _Frontend 使用工厂方法创建缓存后端或前端 UML 图 代码 StaticFactory.php FormatterInterface.php FormatString.php FormatNumber.php 测试 Tests/StaticFactoryTest.php 3、抽象工厂模式 目的 在不指定具体类的情况下创建一系列相关或依赖对象。 通常创建的类都实现相同的接口。 抽象工厂的客户并不关心这些对象是如何创建的