โหมดแม่แบบ
ในโหมดแม่แบบ (แบบ Template) และระดับนามธรรมที่กำหนดวิธีการที่จะดำเนินการได้เปิดเผยวิธีการ / แม่แบบ subclasses มันต้องแทนที่วิธีการที่จะประสบความสำเร็จ แต่จะเรียกว่าระดับนามธรรมจะถูกกำหนด ประเภทของรูปแบบการออกแบบนี้เป็นรูปแบบพฤติกรรม
การแนะนำ
เจตนา: กำหนดขั้นตอนวิธีการดำเนินงานโครงกระดูกในขณะที่การชะลอขั้นตอนที่จะ subclassesแม่แบบวิธีช่วยให้ subclasses ของอัลกอริทึมโดยไม่มีการเปลี่ยนแปลงโครงสร้างของขั้นตอนโดยเฉพาะขั้นตอนวิธีการที่สามารถนิยามใหม่
โซลูชั่นหลัก: บางวิธีการทั่วไป แต่ในแต่ละชั้นย่อยใหม่เขียนวิธีการนี้
เมื่อใช้: มีบางวิธีการทั่วไป
วิธีการแก้ปัญหาเหล่านี้ขั้นตอนวิธีการทั่วไปใจลอย
รหัสสำคัญ: ระดับนามธรรมดำเนินการขั้นตอนต่างๆในการดำเนินการชั้นย่อย
ตัวอย่างการใช้งาน: 1, เมื่ออยู่ในบ้านที่สร้างขึ้นมูลนิธิสายไฟท่อน้ำเหมือนกันเพียง แต่ในส่วนหลังของอาคารที่มีตู้เสื้อผ้าบวกบวกรั้วแตกต่าง2 เดินทางไปยังตะวันตกตั้งเป็นพระพุทธรูปที่ดีภายใน 81 ยากนี้เป็นระดับบนสุดกรอบตรรกะ 3 Spirng ในการสนับสนุน Hibernate บางคนได้รับแล้วเป็นวิธีที่ดีที่จะแค็ปซูลเช่นการทำธุรกรรมที่เปิดได้รับเซสชันปิด Session และการเขียนโปรแกรมอื่น ๆ ที่ยังไม่ได้เขียนซ้ำบรรทัดฐานรหัสดีโยนโดยตรงนิติบุคคลสามารถบันทึก
ข้อดี: 1, ส่วนหนึ่งของแพ็กเกจเดิมเป็นส่วนหนึ่งตัวแปรขยาย2, สารสกัดจากรหัสทั่วไปง่ายต่อการรักษา 3 ลักษณะการทำงานจะถูกควบคุมโดยผู้ปกครองชั้นการดำเนิน subclass
ข้อเสีย: แต่ละของการใช้งานที่แตกต่างกันต้อง subclass เพื่อให้บรรลุผลในการเพิ่มจำนวนของการเรียนที่ทำให้ระบบมากขึ้น
สถานการณ์การใช้งาน: 1, วิธีการหลายชั้นย่อยทั่วไปและตรรกะเดียวกัน2 สิ่งที่สำคัญวิธีการที่ซับซ้อนถือได้ว่าเป็นวิธีการที่แม่แบบ
หมายเหตุ: เพื่อป้องกันการกระทำที่เป็นอันตรายควบคู่กับวิธีการที่แม่แบบทั่วไปคือคำหลักสุดท้าย
การสำนึก
เราจะสร้างการกระทำที่กำหนดเองเกมระดับนามธรรมขัดแย้งแม่แบบวิธีที่ถูกกำหนดเป็นขั้นสุดท้ายจึงจะไม่ถูกเขียนทับคริกเก็ตและเกมฟุตบอลเป็นส่วนขยายของชั้นนิติบุคคลซึ่งแทนที่ระดับนามธรรม
TemplatePatternDemo เราแสดงให้เห็นถึงการใช้งานของระดับเกมที่จะแสดงให้เห็นถึงการใช้รูปแบบแม่แบบ
ขั้นตอนที่ 1
สร้างระดับนามธรรมวิธีแม่แบบจะถูกกำหนดเป็นขั้นสุดท้าย
Game.java
เกมระดับนามธรรมสาธารณะ { นามธรรมเป็นโมฆะเริ่มต้น (); นามธรรมเป็นโมฆะ startPlay (); นามธรรมเป็นโมฆะ endPlay (); // แม่แบบสาธารณะเล่นเป็นโมฆะสุดท้าย () { // เริ่มต้นเกมเริ่มต้น (); // เริ่มเกม startPlay (); // End เกม endPlay (); } }
ขั้นตอนที่ 2
สร้างขยายชั้นเรียนนิติบุคคลดังกล่าวข้างต้นระดับ
Cricket.java
คริกเก็ตระดับสาธารณะขยายเกม { @Override เป็นโมฆะ endPlay () { System.out.println ( "คริกเก็ตเกมเสร็จสิ้น!"); } @Override เริ่มต้นเป็นโมฆะ () { System.out.println ( "! คริกเก็ตเกมเริ่มต้นเริ่มต้นเล่น."); } @Override เป็นโมฆะ startPlay () { System.out.println ( "คริกเก็ตเกมเริ่มสนุกกับเกม.!"); } }
Football.java
ฟุตบอลระดับสาธารณะขยายเกม { @Override เป็นโมฆะ endPlay () { System.out.println ( "เกมฟุตบอลเสร็จสิ้น!"); } @Override เริ่มต้นเป็นโมฆะ () { System.out.println ( "! เกมฟุตบอลเริ่มต้นเริ่มต้นเล่น."); } @Override เป็นโมฆะ startPlay () { System.out.println ( "ฟุตบอลเกมเริ่มสนุกกับเกม.!"); } }
ขั้นตอนที่ 3
เกมโดยใช้วิธีการเล่นแม่แบบ() เพื่อแสดงให้เห็นถึงเกมที่กำหนดไว้
TemplatePatternDemo.java
TemplatePatternDemo คลาสที่สาธารณะ { ประชาชนเป็นโมฆะคง main (String args []) { เกมคริกเก็ตใหม่ = (); game.play (); System.out.println (); เกมฟุตบอล = ใหม่ (); game.play (); } }
ขั้นตอนที่ 4
ตรวจสอบการส่งออก
เกมคริกเก็ตเริ่มต้นได้! เริ่มเล่น เริ่มเกมคริกเก็ต. สนุกกับเกม! เสร็จแล้วคริกเก็ตเกม! เกมฟุตบอลเริ่มต้นได้! เริ่มเล่น เกมฟุตบอลเริ่มต้น. สนุกกับเกม! เสร็จสิ้นเกมฟุตบอล!