設計模式之-------代理模式

<?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();


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章