Adapter

メモ程度に。。

<?php
class ShowFile{
	private $file;
	public function ShowFile($file){
		$this->file = $file;
	}
	public function showPatternA(){
		print $this->file."をPatternA表示";
	}
	public function showPatternB(){
		print $this->file."をPatternB表示";
	}
	public function showPatternC(){
		print $this->file."をPatternC表示";
	}
}

interface display{
	public function display();
}

class ShowFileToClient extends ShowFile implements display{
	public function __construct($file){
		parent::__construct($file);
	}
	public function display(){
		parent::showPatternB();
	}
}

class ShowFileToHQ implements display{
	private $file;
	public function __construct($file){
		$this->file = new ShowFile($file);
	}
	public function display(){
		$this->file->showPatternC();
	}
}

$test = new ShowFile("./data.txt");
$test->showPatternA();
print "<br>";

$clt = new ShowFileToClient("./data2.txt");
$clt->display();
print "<br>";

$hq = new ShowFileToHQ("./data3.txt");
$hq->display();

?>