รูปแบบการออกแบบใดที่ใช้ใน Spring framework?
รูปแบบการออกแบบใดที่ใช้ใน Spring framework?
คำตอบ:
มีการใช้รูปแบบการออกแบบที่แตกต่างกันมากมาย แต่มีบางอย่างที่ชัดเจน:
พร็อกซี่ - ใช้อย่างมากในAOPและระยะไกล
Singleton - bean ที่กำหนดในไฟล์ config spring เป็น singletons ตามค่าเริ่มต้น
วิธีเทมเพลต - ใช้อย่างกว้างขวางเพื่อจัดการกับโค้ดที่ทำซ้ำสำเร็จรูป (เช่นปิดการเชื่อมต่ออย่างหมดจด ฯลฯ ยกตัวอย่างเช่นJdbcTemplate , JmsTemplate , JpaTemplate
อัปเดตความคิดเห็นต่อไปนี้: สำหรับ MVC คุณอาจต้องการอ่านข้อมูลอ้างอิง MVC
รูปแบบที่ชัดเจนในการใช้ MVC:
Model View Controller :-) ข้อดีของ Spring MVC คือตัวควบคุมของคุณเป็น POJO ซึ่งต่างจากการเป็น servlets ทำให้การทดสอบคอนโทรลเลอร์ง่ายขึ้น สิ่งหนึ่งที่ควรทราบก็คือการควบคุมเป็นสิ่งจำเป็นเพียงเพื่อจะกลับเป็นชื่อที่มุมมองเชิงตรรกะและการเลือกมุมมองที่เหลืออยู่เพื่อแยกViewResolver ทำให้ง่ายต่อการนำคอนโทรลเลอร์กลับมาใช้ใหม่สำหรับเทคโนโลยีมุมมองต่างๆ
ตัวควบคุมด้านหน้าด้านหน้าควบคุมSpring มีDispatcherServletเพื่อให้แน่ใจว่าคำขอที่เข้ามาจะถูกส่งไปยังคอนโทรลเลอร์ของคุณ
View Helper - Spring มีแท็ก JSP ที่กำหนดเองจำนวนหนึ่งและมาโครความเร็วเพื่อช่วยในการแยกโค้ดออกจากการนำเสนอในมุมมอง
Foo
และคุณดึงอินสแตนซ์ของFoo
ต่อบริบทคุณจะได้รับการอ้างอิงอ็อบเจ็กต์สองรายการที่แตกต่างกัน แต่รูปแบบการออกแบบที่ใช้ที่นี่คือรุ่นฟลายเวท
และแน่นอนว่าการฉีดแบบพึ่งพาหรือ IoC (การควบคุมแบบผกผัน) ซึ่งเป็นศูนย์กลางของเนื้อหา BeanFactory / ApplicationContext ทั้งหมด
สิ่งที่ DI เป็นรูปแบบกลยุทธ์บางอย่าง เมื่อใดก็ตามที่คุณต้องการแลกเปลี่ยนตรรกะ / การใช้งานได้โดยทั่วไปคุณจะพบอินเทอร์เฟซและวิธีการตั้งค่าที่เหมาะสมบนคลาสโฮสต์เพื่อเชื่อมต่อการใช้งานอินเทอร์เฟซที่กำหนดเองของคุณ
Spring เป็นชุดรูปแบบ API แนวปฏิบัติที่ดีที่สุดคุณสามารถเขียนรายการช้อปปิ้งได้ตราบเท่าที่แขนของคุณ วิธีที่ API ได้รับการออกแบบสนับสนุนให้คุณ (แต่ไม่ได้บังคับให้คุณ) ทำตามรูปแบบเหล่านี้และครึ่งหนึ่งของเวลาที่คุณติดตามโดยไม่รู้ว่าคุณกำลังทำอยู่
รูปแบบตัวระบุตำแหน่งบริการ - ServiceLocatorFactoryBean เก็บข้อมูลของถั่วทั้งหมดในบริบท เมื่อรหัสไคลเอนต์ขอบริการ (bean) โดยใช้ชื่อจะระบุตำแหน่ง bean นั้นในบริบทและส่งกลับ รหัสไคลเอนต์ไม่จำเป็นต้องเขียนโค้ดที่เกี่ยวข้องกับสปริงเพื่อค้นหาบีน
Observer-Observable: ใช้ในกลไกเหตุการณ์ของ ApplicationContext
รูปแบบโรงงานยังใช้สำหรับการโหลดถั่วผ่าน BeanFactory และบริบทแอปพลิเคชัน
รูปแบบวิธีการโรงงาน: BeanFactory สำหรับการสร้างอินสแตนซ์ของอ็อบเจ็กต์ Singleton: ประเภทอินสแตนซ์สามารถเป็น singleleton สำหรับบริบท Prototype: สามารถเป็นต้นแบบได้ รูปแบบตัวสร้าง: คุณยังสามารถกำหนดวิธีการในคลาสที่จะรับผิดชอบในการสร้างอินสแตนซ์ที่ซับซ้อน