每日一模式之代理模式

<?php
//代理模式 代理模式的作用和父类以及接口和组合的作用类似,都是为了聚合共用部分,减少公共部分的代码

//程序猿能写代码可是不能运行机器码,这些得交个计算机

//代码
class Code {
	private $_code_txt;
	public function __construct($code_txt){
		$this->_code_txt = $code_txt;
	}
	public function getCode(){
		return $this->_code_txt;
	}
}

//程序猿
class Programer {

	public static function makeCode(){
		$code_txt =  "import std.stdio;void main(){writeln(\"hello d language programe\");}";
		return new Code($code_txt);
	}
}

//运行代码的机器
class CodeRunner {
	private $_code;
	public function runCode($code){
		$this->_code = $code;
		$this->debug();
		$this->complie();
		$this->run();
	}
	public function debug(){
		echo $this->_code->getCode()."debug\n";
	}
	public function complie(){
		echo $this->_code->getCode()."编译\n";
	}

	public function run(){
		echo $this->_code->getCode()."运行\n";
	}
}

$cr = new CodeRunner();
$cr->runCode(Programer::makeCode());


你可能感兴趣的:(每日一模式之代理模式)