工厂模式1.简单工厂模式的目的简单工厂模式是工厂模式的简化版。它和静态工厂模式最大的区别在于它不是“静态的”。因为它不是静态的,所以您可以拥有多个具有不同参数的工厂,您可以将它们子类化。你甚至可以模拟(Mock)他,这对于编写可测试代码至关重要。这就是为什么它比静态工厂模式更受欢迎的原因!UML图代码SimpleFactory.phpBicycle.php用法测试Tests/SimpleFactoryTest.php2.静态工厂模式的目的类似于抽象工厂模式。此模式用于创建一系列相关或相互依赖的对象。“静态工厂模式”与“抽象工厂模式”的区别在于只使用一个静态方法来创建所有类型的对象,这个方法通常命名为factory或build。ExampleZendFramework:Zend_Cache_Backendor_Frontend使用工厂方法创建缓存后端或前端UML图代码StaticFactory.phpFormatterInterface.phpFormatString.phpFormatNumber.phpTestTests/StaticFactoryTest.php3.抽象工厂模式的目的是创建一个类无需指定相关或依赖对象的特定类Series。通常会创建实现相同接口的类。抽象工厂的客户端并不关心对象是如何创建的,它只知道它们是如何协同工作的。UML图代码Product.phpShippableProduct.phpDigitalProduct.phpProductFactory.phpTestTests/AbstractFactoryTest.php单例模式单例模式保证一个类只有一个实例,并实例化自己并将这个实例提供给整个系统。单例模式是一种常见的设计模式。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、数据库操作和显卡驱动程序通常被设计为单例。单例模式分为懒人式单例、饿鬼式单例和注册式单例三种。单例模式有以下三个特点:1.只能有一个实例。2.您必须自己创建这个实例。3.这个实例必须提供给其他对象。那么为什么要使用PHP单例模式呢?PHP的主要应用场合之一就是应用程序与数据库打交道的场景。一个应用程序中会有大量的数据库操作。对于连接数据库句柄到数据库的行为,使用单例模式可以避免大量的新增操作。因为每一个新的操作都会消耗系统和内存资源。策略模式策略模式是对象的行为模式,意在封装一套算法。动态选择所需的算法并使用它。策略模式是指程序中涉及决策控制的模式。策略模式非常强大,因为这种设计模式本身的核心思想就是面向对象编程的多态思想。策略模式的三种角色:1.抽象策略角色2.具体策略角色3.环境角色实现步骤(参考抽象策略角色):1.定义抽象角色类(定义各个实现的公共抽象方法)2.定义具体的策略类(具体实现父类的公共方法)3.定义上下文角色类(私有化声明抽象角色变量,重写构??造函数,实现抽象方法)只是在编程领域之外,还有很多策略模式的例子。例如:如果我早上需要从家里去上班,我可以有几个策略上的考虑:我可以坐地铁、坐公交车、步行或其他方式。每个策略实现相同的结果,但使用不同的资源。策略模式代码示例:观察者模式1:观察者模式(Observer),当一个对象的状态发生变化时,所有依赖它的对象都会得到通知并自动更新。2:场景:事件发生后,进行一系列更新操作。传统的编程方式是在事件代码之后直接添加处理逻辑。当更新逻辑增加时,代码变得难以维护。这种方法是耦合的和侵入性的。添加新的逻辑需要修改事件的主要代码。3:观察者模式实现了低耦合、非侵入式的通知和更新机制。定义一个事件触发的抽象类。定义一个观察者接口实现:注册模式注册模式解决全局共享和交换对象。创建的对象挂在一个可以全局使用的数组上。需要使用的时候直接从数组中获取即可。在全局树上注册对象。任何地方直接去访问。适配器模式将各种不同的功能接口封装到一个统一的API中。PHP中的数据库操作分为三种类型:MySQL、MySQLi和PDO。可以使用适配器模式将它们统一为一个,这样就可以将不同的数据库操作统一到同一个API中。类似的场景还有缓存适配器,可以将memcache、redis、file、apc等不同的缓存功能统一为一个。首先定义一个接口(有几个方法,以及相应的参数)。那么,有几种不同的情况,写几个类来实现接口就可以了。将执行类似功能的功能统一到一致的方法中。更多关于MySQLMySQLi的学习内容,请访问码农到架构师的培养之路
