รูปแบบวิธีการเทมเพลตหมายถึง:
โครงกระดูกหรือขั้นตอนของอัลกอริทึมถูกกำหนดไว้ในวิธีการและบางขั้นตอนจะล่าช้าไปยังคลาสย่อยสำหรับการใช้งาน วิธีการเทมเพลตช่วยให้คลาสย่อยสามารถกำหนดขั้นตอนบางอย่างในอัลกอริทึมโดยไม่ต้องเปลี่ยนโครงสร้างอัลกอริทึม
วิธีการเทมเพลตกำหนดลำดับกระบวนการดำเนินการในคลาสฐานซึ่งสามารถมั่นใจได้ว่าขั้นตอนจะดำเนินการตามลำดับ การใช้งานเฉพาะบางอย่างของบางขั้นตอนได้รับการประกาศในคลาสฐานและการใช้งานเฉพาะของขั้นตอนการเปลี่ยนแปลงบางอย่างจะถูกส่งมอบให้กับคลาสย่อยเพื่อนำไปใช้ดังนั้นจึงชะลอขั้นตอนบางอย่างในคลาสย่อย หนึ่งในประโยชน์ที่ใหญ่ที่สุดของวิธีการเทมเพลตคือสามารถกำหนดกระบวนการทางธุรกิจที่จะดำเนินการตามลำดับที่เข้มงวดบางอย่างควบคุมขั้นตอนการดำเนินการของอัลกอริทึมทั้งหมด
วิธีนี้กำหนดอัลกอริทึมเป็นชุดของขั้นตอนซึ่งขั้นตอนทั้งหมดที่ต้องการให้คลาสย่อยเพื่อดำเนินการตามกำหนดเองถูกกำหนดเป็นวิธีนามธรรม ลักษณะของคลาสพื้นฐานที่เป็นนามธรรมคือวิธีการเทมเพลตโดยทั่วไปจะถูกตั้งค่าเป็นขั้นสุดท้ายซึ่งป้องกันไม่ให้คลาสย่อยจากการเขียนทับขั้นตอนของอัลกอริทึมโดยใช้การดำเนินการหรือขั้นตอนเดียวกันโดยตรงในคลาสฐานและตั้งค่าขั้นตอนการเปลี่ยนแปลงบางอย่างเป็นนามธรรมและคลาสย่อยให้เสร็จสมบูรณ์
ตัวอย่างการใช้งาน Java
แผนภาพชั้นเรียน:
/ *** เทมเพลตกระบวนการทางธุรกิจให้กรอบพื้นฐาน*/ คลาสนามธรรมสาธารณะ Basetemplate {โมฆะนามธรรมสาธารณะ Part1 (); นามธรรมนามธรรมสาธารณะ Part2 (); นามธรรมนามธรรมสาธารณะ Part3 (); // เพื่อผลการทดลองอย่างเคร่งครัดไม่สามารถเขียนใหม่ได้โดยใช้โมฆะสุดท้าย usetemplateMethod () {ตอนที่ 1 (); ตอนที่ 2 (); ตอนที่ 3 (); - / ** * วิธีการใช้งานเทมเพลต 1 */ คลาสสาธารณะ TemplateMethod ขยาย basetemplate {@Override โมฆะสาธารณะ Part1 () {System.out.println ("วิธีเทมเพลต 1"); } @Override โมฆะสาธารณะ part2 () {system.out.println ("วิธีการเทมเพลต 2"); } @Override โมฆะสาธารณะ part3 () {system.out.println ("วิธีการเทมเพลต 3"); - / ** * วิธีการใช้งานเทมเพลต 2 * @author Stone * */ คลาสสาธารณะ TemplateMethod2 ขยาย basetemplate {@Override โมฆะสาธารณะ Part1 () {system.out.println ("วิธีเทมเพลต 11"); } @Override โมฆะสาธารณะ part2 () {system.out.println ("วิธีการเทมเพลต 22"); } @Override โมฆะสาธารณะ part3 () {system.out.println ("วิธีการเทมเพลต 33"); - การทดสอบระดับสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {basetemplate tm = ใหม่ templateMethod (); TM.USETEMPLATEMETHOD (); System.out.println (""); Basetemplate TM2 = TemplateMethod2 () ใหม่; TM2.USETEMPLATEMETHOD (); -พิมพ์:
วิธีการเทมเพลต 1 วิธีการเทมเพลต 2 วิธีแม่แบบ 3 วิธีการเทมเพลต 11 วิธีการเทมเพลต 22 วิธีการเทมเพลต 33