Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für die Codefreigabe eines PHP-Vorlagenmethodenmusters

Beispiel für die Codefreigabe eines PHP-Vorlagenmethodenmusters

黄舟
黄舟Original
2017-03-17 09:55:471461Durchsuche

Vorlagenmethodenmuster:

Das Vorlagenmethodenmuster definiert die Schritte eines Algorithmus und ermöglicht Unterklassen, Implementierungen für einen oder mehrere Schritte bereitzustellen. Vorlagenmethodenmuster: Definieren Sie das Grundgerüst eines

-Algorithmus in einer Methode und verschieben Sie einige Schritte auf Unterklassen. Die Vorlagenmethode ermöglicht Unterklassen, den Algorithmus zu verwenden, ohne die Struktur des Algorithmus zu ändern. Definieren Sie bestimmte Schritte im Algorithmus neu.

<?php
// 模板方法模式

function echoLine($msg) {
	echo $msg, &#39;<br/>&#39;;
}

abstract class TemplateBase
{
	abstract function step1();
	abstract function step2();
	abstract function step3();
	
	public function doAction() {
		$this->step1();
		if(!$this->skipStep2()) {
			$this->step2();
		}
		$this->step3();
	}
	
	/**
	 * 钩子方法
	 */
	public function skipStep2() {
		return false;
	}
}

class ConcreteTemplate extends TemplateBase
{
	public function step1() {
		echoLine(&#39;This is step 1&#39;);
	}
	
	public function step2() {
		echoLine(&#39;This is step 2&#39;);
	}
	
	public function step3() {
		echoLine(&#39;This is step 3&#39;);
	}
	
	// 用来控制是否跳过某些步骤
	public function skipStep2() {
		return false;
	}
}

// test code
$ct = new ConcreteTemplate();
$ct->doAction();

Das obige ist der detaillierte Inhalt vonBeispiel für die Codefreigabe eines PHP-Vorlagenmethodenmusters. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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