单例模式:
一般用于数据库连接和钩子,避免大量的new操作
关键所在,设置一个标志位instance,私有的构造方法__construct
<?php
class Dog
{
//用来保存单例对象的静态的属性
static private $instance;
private function __construct(){}
static public function getInstance()
{
if (!self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
}
// $dog1 = new Dog();
// $dog2 = new Dog();
$dog1 = Dog::getInstance();
$dog2 = Dog::getInstance();
if ($dog1 === $dog2) {
echo '实例化两次';
} else {
echo '实例化一次';
}
适配器模式:
个人理解:当迭代升级时,引进一些新功能是在原有功能基础上升级,去修改原来的代码很麻烦,写一个适配器,直接将旧功能引入(包装进)新功能中,例如之前生产一个玩具动物会张嘴闭嘴,现在是通过遥控控制张嘴闭嘴,就可以将之前的功能(类)引入新功能(类)中
工厂模式:
如果之前写的一个类实现一个功能,后来有一个类似的方法可以通过这个类实现,但是需要修改很多内容,这时候可以写一个接口抽象类,里面写好所需要的所有抽象方法,然后具体执行的操作由子类继承后重写方法来实现