PHP中几种常见的开发模式
本篇文章给大家带来了关于PHP的相关知识,其中主要介绍了几种常见的开发模式,下面一起来看一下,希望对大家有帮助。
设计模式六大原则
开放封闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象.
依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
单一职责原则:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。
接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
迪米特法则:一个对象应该对其他对象保持最少的了解。
1.单例模式:
特点: 使用单例模式, 则可以避免大量的new 操作消耗的资源
单例类不能直接实例化创建,而是只能由类本身实例化。因此,要获得这样的限制效果,构造函数必须标记为private,从而防止类被实例化。
需要一个私有静态成员变量来保存类实例和公开一个能访问到实例的公开静态方法。
在PHP中,为了防止他人对单例类实例克隆,通常还为其提供一个空的私有__clone()方法。
-
$_instance必须声明为静态的私有变量
-
构造函数和析构函数必须声明为私有,防止外部程序new 类从而失去单例模式的意义
-
getInstance()方法必须设置为公有的,必须调用此方法 以返回实例的一个引用
-
::操作符只能访问静态变量和静态函数
-
new对象都会消耗内存
-
使用场景:最常用的地方是数据库连接。
-
使用单例模式生成一个对象后, 该对象可以被其它众多对象所使用。
-
私有的__clone()方法防止克隆对象
<?php class Singleton{ //私有属性,用于保存实例 private static $instance; //构造方法私有化,防止外部创建实例 private function __construct(){}//公有方法,用于获取实例 public static function getInstance(){ //判断实例有无创建,没有的话创建实例并返回,有的话直接返回 if(!(self::$instance instanceof self)){ self::$instance = new self(); } return self::$instance; } //克隆方法私有化,防止复制实例 private function __clone(){}}
登录后复制