设计模式在php中的特性,PHP-php设计模式在实际中用得多吗?

本文深入剖析了单例、工厂、观察者、命令链和策略模式在实际开发中的应用案例,包括如何创建工厂类、实现单例模式避免资源浪费,以及观察者模式如何促进组件间的解耦。通过实例演示,理解这些模式如何提升软件设计的灵活性和效率。
摘要由CSDN通过智能技术生成

常用的那几中模式还是经常用的,如单例模式、工厂模式、观察者模式、命令链模式、策略模式等:

工厂模式的例子:

interface IUser

{

function getName();

}

class User implements IUser

{

public function __construct( $id ) { }

public function getName()

{

return "Jack";

}

}

class UserFactory

{

public static function Create( $id )

{

return new User( $id );

}

}

$uo = UserFactory::Create( 1 );

echo( $uo->getName()."n" );

?>

单例模式的例子:

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 listn" );

}

}

$ul = new UserList();

$ul->addObserver( new UserListLogger() );

$ul->addCustomer( "Jack" );

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值