典型場景-典型問題-典型解決
在面向對象設計法則中,重要的是開閉原則:對於修改是封閉的,對於擴展時開放的;
<?php
# 工廠
interface db {
function conn();
}
interface Factory {
function crateDB ();
}
class Mysql implements db{
public function conn () {
echo 'conn mysql';
}
}
class MysqlFactory implements Factory {
public function createDB () {
return new Mysql();
}
}
$fact = new MysqlFactory();
$db = $fact -> createDB();
$db -> conn();
<?php
# 類前加final,類不能被繼承;方法前加final,則方法不能被覆蓋;
# 單例 DB UPLOAD COOKIE
class sigle {
private static $instance = null;
final protected function __construct() {
# new
}
private function __clone() {
# clone
}
public static function getInstance() {
if(null === self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
}