Heim > Artikel > Backend-Entwicklung > (5) Objektorientierte Designprinzipien 1 – Allgemeiner Überblick und Prinzip der Einzelverantwortung
1. Allgemeine Gliederung:
1. Die fünf Prinzipien der Objektorientierung: Einzelverantwortungsprinzip, Schnittstellenisolationsprinzip, Offen-Geschlossen-Prinzip, Ersetzungsprinzip und Abhängigkeitsinversionsprinzip.
2. Prinzip der Einzelverantwortung:
1. Was eine Klasse betrifft, gibt es nur einen Grund für ihre Änderung: das Prinzip der Einzelverantwortung.
2. Eine einzige Verantwortung hat zwei Bedeutungen:
a. Vermeiden Sie die Verteilung der gleichen Verantwortlichkeiten auf verschiedene Klassen
b. Vermeiden Sie, dass eine Klasse zu viele Verantwortlichkeiten übernimmt
3 Der Grund für das Verantwortungsprinzip: Reduzieren Sie die Kopplung zwischen Klassen und verbessern Sie die Wiederverwendbarkeit von Klassen.
3. Factory-Muster:
1. Das Factory-Muster ermöglicht die Instanziierung von Objekten, wenn Code ausgeführt wird. Kann Objekte „produzieren“.
2. Beispiel:
<?php /* * 单一职责原则 */ interface Db_Adapter{ /* * 数据库连接 * @param $config数据库配置 * @return resource */ public function connect($config); /* * 执行数据库查询 * @param string $query 数据库查询sql字符串 * @param mixed $handld 连接对象 * @return resource */ public function query($query,$handle); } class Db_Adapter_Mysql implements Db_Adapter{ private $_dbLink; /* * 数据库连接 * * @param $config 数据库配置 * @throws Db_Exception * @return resource */ public function connect($config){ if ($this->_dbLink = @mysql_connect($config->host.(empty($config->port) ? '' : ':'.$config->port), $config->user,$config->password,true)){ if (@mysql_select_db($config->database,$this->_dbLink)){ if ( $config->charset){ mysql_query("SET NAMES '{$config->charset}'",$this->_dbLink); } return $this->_dbLink; } } /*数据库异常*/ throw new Db_Exception(@mysql_error($this->_dbLink)); //这一句报了很多错 } /* * 执行数据库查询 * * @param string $query 数据库查询sql字符串 * @param mixed $handle 连接对象 * @return resource */ public function query($query,$handle){ $resource = ""; if ($resource == @mysql_query($query,$handle)){ return $resource; } } } class Db_Adapter_sqlite implements Db_Adapter{ private $_dbLink; //数据库连接字段标记 /* * 数据库连接函数 * * @param $config数据库配置 * @throws DB_exception * @return resource */ public function connect($config){ if ($this->_dbLink = @mysql_connect($config->host. (empty($config->port) ? '' : ':'.$config->port), $config->user,$config->password,true)){ if (@mysql_select_db($config->database, $this->_dbLink)){ if ($config->charset){ mysql_query("SET NAMES '{$config->charset}'",$this->_dbLink); } return $this->_dbLink; } } /*数据库异常*/ throw new Db_exception(@mysql_error($this->dbLink)); } /* * 执行数据库查询 * * @param string $query 数据库查询sql字符串 * @param mixed $handle 连接对象 * @return resource */ public function query($query,$handle){ $resource = ""; if ($resource == @mysql_query($query,$handle)){ return $resource; } } } $testDb = new Db_Adapter_Mysql(); $config = array( //这里写数据库配置 'host'=>'localhost', ); $testDb->connect($config); $testDb->query($sql,$handle);
Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne dessen Erlaubnis reproduziert werden.
Das Obige hat (5) Objektorientiertes Designprinzip 1 eingeführt – den allgemeinen Überblick und das Prinzip der Einzelverantwortung, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.