#### **1.單例模式**
1. $_instance必須聲明為靜態的私有變量
2. 構造函數和析構函數必須聲明為私有,防止外部程序new 類從而失去單例模式的意義
3. getInstance()方法必須設置為公有的,必須調用此方法 以返回實例的一個引用
4. ::操作符只能訪問靜態變量和靜態函數
5. new對象都會消耗內存
6. 使用單例模式生成一個對象后, 該對象可以被其它眾多對象所使用。
7. 私有的__clone()方法防止克隆對象
場景:數據庫連接
特點:一次只能創建一個對象
#### **工廠模式**
介紹:創建對象上優化,減少new實例化
場景:擴展插件
特點:避免修改類文件時,多處代碼修改,節省時間
#### **注冊模式**
介紹:減少資源浪費,可減少實例化類,可達到全局共享
場景:擴展插件、框架核心
特點:可快速使用類對象,直接從數組對象(注冊器)中獲取
#### **適配模式**
介紹:統一接口寫法,達到任意切換不同類,而不影響使用者
場景:框架核心(緩存類、數據庫類)
特點:可適應不同服務器
#### **策略模式**
介紹:將一組特定的行為或算法封裝成類,以適應某些特定的場景
場景:商城項目的不同性別展示不同的推薦數據
特點:改變以往的硬編碼方式(if-else)