单例模式:每次包含且仅包含一个对象,那么这个对象就是一个单元素
工厂模式: 使用工厂类创建对象,而不直接new。想改对象类型,只需改工厂即可
观察者模式: (Observer)将自己注册到被观察对象(Subject)中,被观察对象将观察者存放在一个容器(Container)里。 被观察对象发生了变化,从容器中得到所有注册过的观察者, 将变化通知观察者
工厂模式: 使用工厂类创建对象,而不直接new。想改对象类型,只需改工厂即可
观察者模式: (Observer)将自己注册到被观察对象(Subject)中,被观察对象将观察者存放在一个容器(Container)里。 被观察对象发生了变化,从容器中得到所有注册过的观察者, 将变化通知观察者
单例模式
_handle =& DB::Connect( $dsn, array() );
}
public function handle()
{
return $this->_handle;
}
}
print( "Handle = ".DatabaseConnection::get()->handle()."\n" );
print( "Handle = ".DatabaseConnection::get()->handle()."\n" );
?>
工厂模式
getName()."\n" );
?>
观察者模式
_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" );
?>