设计模式

1、 开闭原则(对扩展开放,对修改关闭)

2、单一职责原则(一个类只负责一个功能)

3、里氏替换原则(类型约束,类型限定)

4、依赖倒置原则(pdo数据库连接)

  总:1、接口,抽象;2低层,具体实现;3前端应用,高层

  1、高层模块不应该依赖低层模块,两者都应该依赖抽象(低层实现如mysql,sqlserver,oracle等,高层调用add,delete,update等)

  2、抽象不应该依赖于细节,细节应当依赖于抽象

  3、面向接口编程,而非面向具体实现编程

5、接口隔离原则(把接口分离,公有的方法提取出来,避免类实现接口里不必要的方法,)

6、迪米特法则(最少知道法则,比如租客,中介,房东,又例如统计中国人口,中央按省统计,不关心省具体怎么统计),聚合/组合复用原则和继承的使用(如果是has,例如人有手,则是用trait聚合/组合,如果是is,认识动物,则用继承)

7、单例模式:一个类只有一个实例,比如数据库连接类,后面程序需要使用数据库时,只需要实例化一次 

header('Content-Type:text/html; charset=utf-8;');
final class DB {
private static $instance = null;
public $conn = null;
private function __construct($config) {
$this->conn = new mysqli($config['host'],$config['username'],$config['pwd'],$config['database']);
}
public static function getInstance($config) {
if (self::$instance === null) {
self::$instance = new self($config);
}
return self::$instance;
}
public function __clone() {
throw new Exception('Error: 禁止克隆');
}
}

$db = DB::getInstance(['host'=>'127.0.0.1','username'=>'root','pwd'=>'root','database'=>'test']);
$link = $db->conn;
mysqli_query($link, 'set names utf8');
$result = $link->query("select * from goods");
print_r($result->fetch_all());
原文地址:https://www.cnblogs.com/maidongdong/p/11422399.html