Corak kaedah templat mentakrifkan rangka algoritma, dan langkah-langkah khusus dilaksanakan oleh subkelas, membenarkan subkelas untuk menyesuaikan langkah-langkah tertentu tanpa mengubah struktur keseluruhan. Corak ini digunakan untuk: 1. Mentakrifkan rangka algoritma. 2. Menangguhkan tingkah laku khusus algoritma kepada subkelas. 3. Benarkan subkelas untuk menyesuaikan langkah tertentu algoritma tanpa mengubah struktur keseluruhan algoritma.
Pengenalan
Corak Kaedah Templat ialah corak reka bentuk yang mentakrifkan rangka algoritma, dan langkah-langkah khusus dilaksanakan oleh subkelas. Ini membolehkan subkelas untuk menyesuaikan langkah tertentu tanpa mengubah struktur keseluruhan algoritma.
Rajah UML
+----------------+ | AbstractClass | +----------------+ | + templateMethod() | +----------------+ +----------------+ | ConcreteClass1 | +----------------+ | + concreteMethod1() | +----------------+ +----------------+ | ConcreteClass2 | +----------------+ | + concreteMethod2() | +----------------+
Contoh Kod
AbstractClass.php
rreeeConcreteClass1.php
abstract class AbstractClass { public function templateMethod() { $this->step1(); $this->step2(); $this->hookMethod(); } protected abstract function step1(); protected abstract function step2(); protected function hookMethod() {} }
StudentManager.php
class ConcreteClass1 extends AbstractClass { protected function step1() { echo "ConcreteClass1: Step 1<br>"; } protected function step2() { echo "ConcreteClass1: Step 2<br>"; } }
class ConcreteClass2 extends AbstractClass { protected function step1() { echo "ConcreteClass2: Step 1<br>"; } protected function step2() { echo "ConcreteClass2: Step 2<br>"; } protected function hookMethod() { echo "ConcreteClass2: Hook Method<br>"; } }
class StudentManager { public function showStudentList() { $students = // 获取学生数据 $view = new StudentListView(); $view->setStudents($students); $view->render(); } public function showStudentDetail($id) { $student = // 获取学生数据 $view = new StudentDetailView(); $view->setStudent($student); $view->render(); } }
Atas ialah kandungan terperinci Bagaimana untuk menggunakan corak kaedah templat dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!