设计模式五大原则、对象池 依赖注入和单例模式

https://learnku.com/docs/shxdledu/solid-principle-of-design-pattern/9281

五大原则

名称 解释 具体例子
SRP 单一责任原则 例如餐厅服务员负责把订单给厨师去做,而不是服务员又要订单又要炒
OCP 开放封闭原则 对扩展开放,对修改关闭,用面向接口编程,组合实现扩展。
LSP 里氏替换原则 机动车必须有轮胎和发动机,子类宝马和奔驰不应该改写没轮胎或者没发动机。
ISP 接口隔离原则 例如电话接口只约束接电话和挂电话,不需要让依赖者知道还有通讯录。
DIP 依赖倒置原则 例如垃圾收集器不管垃圾是什么类型,要是垃圾就行

对像池主在对象创建开销较大或要控制对象数量的时候使用。最常见的对象池应该是数据库连接池和线程池。

依赖注入是指对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用,传递给它。 具体可参阅 https://pcity.top/article/51

单例模式

场景:

例如数据库实例,一般都会走单例模式。 单例模式可以减少类的实例化

<?php
/**
 * by www.jb51.net
 */
class Mysql{
 //该属性用来保存实例
 private static $instance;
 private $conn;
 //构造函数为private,防止创建对象
 private function __construct(){
 $this->conn = mysql_connect('localhost','root','123456');
 //...
 }
 //创建一个用来实例化对象的方法
 public static function getInstance(){
 if(!(self::$instance instanceof self)){
  self::$instance = new self;
 }
 return self::$instance;
 }
 //防止对象被复制
 public function __clone(){
 trigger_error('Clone is not allowed !');
 }
 //...
 public function query(){
 //do something
 }
}
//使用单例调用类中的方法,不能new 和 clone
Mysql::getInstance()->query();
?>

彼特城博客
请先登录后发表评论
  • latest comments
  • 总共0条评论