<?php
/**
* * @author http://weibo.com/codersay
*单元素模式
require_once("DB.php");
class DatabaseConnection {
public static function get() {
static $db = null;
if ( $db == null )
$db = new DatabaseConnection();
return $db;
}
private $_handle = null;
private function __construct(){
$dsn = 'mysql://root:password@localhost/photos';
$this->_handle =& DB::Connect( $dsn, array() );
}
public function handle() {
return $this->_handle;
}
}
print( "Handle = ".DatabaseConnection::get()->handle()."\n" );
print( "Handle = ".DatabaseConnection::get()->handle()."\n" );
*/
//观察者模式
interface IObserver {
function onChanged( $sender, $args );
}
interface IObservable {
function addObserver( $observer );
}
class UserList implements IObservable {
private $_observers = array();
public function addCustomer( $name ) {
foreach( $this->_observers as $obs ) $obs->onChanged( $this, $name );
}
public function addObserver( $observer ) {
$this->_observers []= $observer;
}
}
class UserListLogger implements IObserver {
public function onChanged( $sender, $args ) {
echo( "'$args' added to user list\n" );
}
}
$ul = new UserList();
$ul->addObserver( new UserListLogger() );
$ul->addCustomer( "Jack" );
?>设计模式之单元素模式与观察者模式
观察者模式与单元素模式在PHP中的应用
最新推荐文章于 2021-04-06 05:06:55 发布
本文深入探讨了PHP中观察者模式和单元素模式的应用,通过实例展示了如何实现对象间的松耦合关系及单元素的管理。
109

被折叠的 条评论
为什么被折叠?



