#### **1.单例模式**
1. $_instance必须声明为静态的私有变量
2. 构造函数和析构函数必须声明为私有,防止外部程序new 类从而失去单例模式的意义
3. getInstance()方法必须设置为公有的,必须调用此方法 以返回实例的一个引用
4. ::操作符只能访问静态变量和静态函数
5. new对象都会消耗内存
6. 使用单例模式生成一个对象后, 该对象可以被其它众多对象所使用。
7. 私有的__clone()方法防止克隆对象
场景:数据库连接
特点:一次只能创建一个对象
#### **工厂模式**
介绍:创建对象上优化,减少new实例化
场景:扩展插件
特点:避免修改类文件时,多处代码修改,节省时间
#### **注册模式**
介绍:减少资源浪费,可减少实例化类,可达到全局共享
场景:扩展插件、框架核心
特点:可快速使用类对象,直接从数组对象(注册器)中获取
#### **适配模式**
介绍:统一接口写法,达到任意切换不同类,而不影响使用者
场景:框架核心(缓存类、数据库类)
特点:可适应不同服务器
#### **策略模式**
介绍:将一组特定的行为或算法封装成类,以适应某些特定的场景
场景:商城项目的不同性别展示不同的推荐数据
特点:改变以往的硬编码方式(if-else)