设计模式之-------代理模式

<?php
/**
**代理模式Proxy:
*********/
abstract class Person{
	abstract public function action();
}


class RealPerson extends Person{
	public function action(){
		echo 'RealPerson';
	}
}


class ProxyPerson extends Person{
	private $_realsubject = NULL;
	
	public function __construct(){
		
	}
	
	public function action(){
		
		$this->_beforeAction();
		if(is_null($_realsubject)){
			$this->_realsubject = new RealPerson();
			$this->_realsubject->action();
		}
		$this->_afterAction();
	}
	
	public function _beforeAction(){
		echo 'beforeAction';
	}
	
	public function _afterAction(){
		echo 'afterAction';
	}
}
class Client{
	public static function test(){
		$request =  new  ProxyPerson();
		$request->action();
	}
}
Client::test();


你可能感兴趣的:(设计模式,代理模式)