夜雪天狼
学习笔记
技术博文
转载备份
心灵鸡汤
设计模式
发布者:caijw
阅读量:6993
发布时间:2017-01-03 14:52:59
# 设计模式的六大原则 - 开放封闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭 - 里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象 - 依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象 - 单一职责原则:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责 - 接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上 - 迪米特法则:一个对象应该对其他对象保持最少的了解 # 常见的设计模式及使用场景 ## 单例设计模式(Singleton) 单例模式,即在应用程序中最多只有该类的一个实例存在,一旦创建,就会一直存在于内存中! 应用场景:单例设计模式常应用于数据库类设计,采用单例模式,只连接一次数据库,防止打开多个数据库连接 说明: 1. 单例类不能直接实例化创建,而是只能由类本身实例化。因此,要获得这样的限制效果,构造函数必须标记为private,从而防止类被实例化 2. 需要一个私有静态成员变量来保存类实例和公开一个能访问到实例的公开静态方法 3. 在PHP中,为了防止他人对单例类实例克隆,通常还为其提供一个空的私有__clone()方法 ````php /** * php代码实现 */ class Database { private static $instance; private function__construct() { } private function__clone() { } public static function getInstance() { if (!(self::$instance instanceof self)) { self::$instance = new self(); } return self::$instance; } } $a =Database::getInstance(); $b =Database::getInstance(); var_dump($a === $b); // true ```` ## 工厂设计模式 工厂设计模式常用于根据输入参数的不同或者应用程序配置的不同来创建一种专门用来实例化并返回其对应的类的实例 -separator-