Analyse des PHP-Adaptermusterobjekt-Anpassungscodes

黄舟
Freigeben: 2023-03-06 16:40:02
Original
1319 Leute haben es durchsucht

PHPAdaptermuster von ObjektAnpassungscodeanalyse

<?php
// 适配器模式-对象适配

/**
 * 需要被适配的类
 * 需求:给 Source 新增一个新的方法但又不修改 Source 的源代码
 */
class Source
{
	public function action() {
		echo &#39;call action&#39;, &#39;<br/>&#39;;
	}
}

interface Targetable
{
	/**
	 * Source 类中同名的方法,
	 * 适配器中不需要使用的方法可以不在此接口中定义
	 */
	function action();
	
	/**
	 * 需要给 Source 类新增的方法
	 */
	function action2();
}

/**
 * 适配器类
 * 相对于 类适配 更加灵活
 */
class Adapter implements Targetable
{
	/**
	 * 不是继承 Source 类, 而是持有 Source 类的实例
	 */
	private $sou = null;
	
	public function construct(Source $s) {
		$this->sou = $s;
	}
	
	public function action() {
		$this->sou->action();
	}
	
	public function action2() {
		echo &#39;call <b>action2</b>&#39;, &#39;<br/>&#39;;
	}
}

// test code
$s = new Source();
$ad = new Adapter($s);

$ad->action();
$ad->action2();
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonAnalyse des PHP-Adaptermusterobjekt-Anpassungscodes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage