สูงสุด 22 Java คำถามสัมภาษณ์รูปแบบการออกแบบ (2026)

ที่นี่มี Java คำถามและคำตอบในการสัมภาษณ์ Design Patterns สำหรับผู้สมัครหน้าใหม่และผู้มีประสบการณ์เพื่อให้ได้งานในฝัน

 

คำถามและคำตอบสัมภาษณ์รูปแบบการออกแบบสำหรับนักศึกษาใหม่

1) อธิบายว่ามันคืออะไร Java รูปแบบการออกแบบ?

รูปแบบการออกแบบเป็นกลยุทธ์ที่เป็นอิสระทางภาษาสำหรับการแก้ปัญหาการออกแบบเชิงวัตถุทั่วไป โดยจะอธิบายวิธีการจัดโครงสร้างคลาสให้ตรงตามข้อกำหนดที่กำหนด


2) อธิบายว่ารูปแบบการออกแบบเชิงสร้างสรรค์และรูปแบบโรงงานคืออะไร?

รูปแบบการออกแบบที่สร้างสรรค์: รูปแบบนี้ใช้เพื่อกำหนดและอธิบายวิธีการสร้างอ็อบเจ็กต์ ณ เวลาสร้างอินสแตนซ์ของคลาส

ลายโรงงาน: รูปแบบโรงงานใช้เพื่อสร้างออบเจ็กต์โดยไม่เปิดเผยตรรกะการสร้างให้ไคลเอ็นต์ทราบ และอ้างอิงถึงออบเจ็กต์ที่สร้างขึ้นใหม่โดยใช้อินเทอร์เฟซทั่วไป

👉 ดาวน์โหลด PDF ฟรี: Java คำถามและคำตอบสัมภาษณ์รูปแบบการออกแบบ


3) รูปแบบการออกแบบใดที่ใช้ในการเข้าถึงองค์ประกอบของวัตถุคอลเลกชันตามลำดับ?

รูปแบบตัววนซ้ำใช้เพื่อเข้าถึงองค์ประกอบของวัตถุคอลเลกชันตามลำดับ


4) เมื่อใช้รูปแบบตัวระบุตำแหน่งบริการเมื่อใด

เมื่อเราต้องการค้นหาบริการต่างๆ โดยใช้ JNDI เราจะใช้รูปแบบตัวระบุตำแหน่งบริการ


5) กล่าวถึงคุณสามารถสร้างรูปแบบซิงเกิลตันได้หลายวิธี?

การสร้างวัตถุชิ้นเดียวมีสองวิธีที่มีชื่อเสียง

  • โหลดขี้เกียจ
  • กำลังโหลดอย่างกระตือรือร้น
Java รูปแบบการออกแบบ
Java คำถามสัมภาษณ์รูปแบบการออกแบบ

6) จงระบุรูปแบบที่ใช้เมื่อต้องการแยกส่วน abs ออกจากกันtracผลกระทบจากการนำไปใช้?

เมื่อเราต้องการแยกส่วน abs ออกจากกันtracจากวิธีการนำไปใช้เพื่อให้ทั้งสองส่วนสามารถเปลี่ยนแปลงได้อย่างอิสระ เราจึงใช้รูปแบบสะพาน (bridge pattern)


7) พูดถึงรูปแบบการออกแบบใดที่จะเป็นประโยชน์ในการเพิ่มฟังก์ชันการทำงานใหม่ให้กับออบเจ็กต์ที่มีอยู่

รูปแบบมัณฑนากรช่วยให้ผู้ใช้สามารถเพิ่มฟังก์ชันการทำงานใหม่ให้กับวัตถุที่มีอยู่ได้โดยไม่ต้องเปลี่ยนโครงสร้าง


8) อธิบายว่าคุณสามารถสร้างคลาส Singleton ได้อย่างไร Java?

เป็นกระบวนการสองขั้นตอน

  • ก่อนอื่น ให้สร้าง constructor ให้เป็นแบบส่วนตัว เพื่อที่ตัวดำเนินการใหม่จะไม่สามารถถูกใช้เพื่อสร้างอินสแตนซ์ของคลาสได้
  • ส่งคืนวัตถุของวัตถุหากไม่ใช่ค่า null มิฉะนั้นให้สร้างวัตถุขึ้นมาและส่งคืนผ่านวิธีการ

9) เป็นไปได้ไหมที่จะเขียน thread safe singleton ลงไป Java?

ในการเขียน thread safe singleton เข้าไป Java มีหลายวิธีตัวอย่างเช่น การใช้อินสแตนซ์ซิงเกิลตันแบบคงที่ที่เริ่มต้นในระหว่างการโหลดคลาส หรือการเขียนซิงเกิลตันโดยใช้การล็อกแบบตรวจสอบสองครั้ง Java Enum เป็นวิธีที่ง่ายที่สุดในการสร้างซิงเกิลตันที่ปลอดภัยสำหรับเธรด


10) พูดถึงว่าเราควรอธิบายรูปแบบการออกแบบอย่างไร?

ในการอธิบายรูปแบบการออกแบบ จำเป็นต้องคำนึงถึงสิ่งต่อไปนี้

  • ชื่อรูปแบบและการจำแนกประเภท
  • ปัญหาและแนวทางแก้ไข
  • ผลที่ตามมา : ทางเลือกที่ขึ้นกับความหลากหลายและภาษาควรได้รับการแก้ไขด้วย
  • รู้การใช้งาน: ระบุการใช้งานในระบบจริงและประสิทธิภาพของระบบ

11) กล่าวถึงสาเหตุที่ไม่อนุญาตให้เข้าถึงตัวแปรที่ไม่คงที่จากวิธีคงที่ Java?

คุณไม่สามารถเข้าถึงข้อมูลที่ไม่ใช่แบบคงที่จากบริบทแบบคงที่ได้ เนื่องจากตัวแปรที่ไม่ใช่แบบคงที่เชื่อมโยงกับอินสแตนซ์เฉพาะของออบเจ็กต์ ในขณะที่แบบคงที่ไม่เชื่อมโยงกับอินสแตนซ์ใดๆ


12) พูดถึงรูปแบบใดที่มีประโยชน์เมื่อต้องส่งข้อมูลที่มีคุณลักษณะหลายอย่างในช็อตเดียวจากไคลเอนต์ไปยังเซิร์ฟเวอร์

รูปแบบวัตถุถ่ายโอนมีประโยชน์เมื่อต้องส่งข้อมูลที่มีคุณลักษณะหลายรายการในช็อตเดียวจากไคลเอนต์ไปยังเซิร์ฟเวอร์


13) ตั้งชื่อเอนทิตีบางส่วนของรูปแบบ DAO หรือไม่

หน่วยงานบางส่วนของ DAO ได้แก่

  • การเข้าถึงข้อมูลคลาสวัตถุที่เป็นรูปธรรม
  • อินเทอร์เฟซออบเจ็กต์การเข้าถึงข้อมูล
  • วัตถุโมเดลหรือวัตถุค่า

14) กล่าวถึงเมื่อใดที่คุณสามารถใช้รูปแบบการสกัดกั้นได้?

รูปแบบการสกัดกั้นจะใช้เมื่อคุณต้องทำการประมวลผลก่อนหรือหลังการประมวลผลโดยมีการร้องขอหรือตอบกลับของแอปพลิเคชัน


15) พูดถึงเมื่อใดควรใช้ Factory Pattern?

สามารถใช้รูปแบบโรงงานได้

  • เมื่อคลาสไม่รู้ว่าต้องสร้างคลาสของอ็อบเจ็กต์ใด
  • เมื่อคลาสระบุคลาสย่อยเพื่อระบุอ็อบเจ็กต์ที่จะสร้าง
  • ในภาษาการเขียนโปรแกรม คุณสามารถใช้ Factory Pattern ซึ่งคุณต้องสร้างอ็อบเจ็กต์ของคลาสย่อยใดคลาสหนึ่ง ขึ้นอยู่กับข้อมูลที่กำหนด

คำถามและคำตอบสัมภาษณ์รูปแบบการออกแบบสำหรับผู้มีประสบการณ์

16) อธิบายในรูปแบบซิงเกิลตันว่าควรทำให้เมธอด getinstance() ทั้งหมดซิงโครไนซ์กันหรือเฉพาะส่วนวิกฤตก็เพียงพอแล้ว อันไหนดีกว่ากัน

Syncการทำให้เป็นเกียรติของทั้งหมด getinstance() วิธีการนี้มีค่าใช้จ่ายสูงและจำเป็นเฉพาะระหว่างการเริ่มต้นอินสแตนซ์ Singleton เท่านั้น เพื่อหยุดการสร้างอินสแตนซ์ Singleton อีกอัน ดังนั้น จึงควรซิงโครไนซ์เฉพาะส่วนที่สำคัญเท่านั้น ไม่ใช่ทั้งวิธีการ


17) กล่าวถึงวิธีการเขียนคลาสซิงเกิลตันได้หลายวิธี Java?

เราสามารถเขียนคลาสซิงเกิลตันได้ Java ในสี่วิธี

  • ซิงเกิลตันพร้อมฟิลด์สุดท้ายแบบคงที่สาธารณะเริ่มต้นระหว่างการโหลดคลาส
  • ซิงเกิลตันที่สร้างโดยคลาสซ้อนกันแบบคงที่หรือที่เรียกว่ารูปแบบตัวยึดซิงเกิล
  • Singleton โดยการซิงโครไนซ์วิธีการรับอินสแตนซ์ ()
  • ราคาเริ่มต้น Java 5 เป็นต้นไปโดยใช้ Enums

18) อธิบายว่าคุณจะป้องกันการสร้าง singleton อีกอันโดยใช้เมธอด clone() ได้อย่างไร

วิธีที่ต้องการในการป้องกันการสร้างอินสแตนซ์อื่นของซิงเกิลตันคือการไม่ใช้อินเทอร์เฟซ Cloneable และหากคุณเพียงแค่ส่งข้อยกเว้นจากเมธอด clone() “ ไม่ต้องสร้างโคลนของคลาสซิงเกิลตัน”


19) พูดถึงความแตกต่างระหว่าง "โยน" และ "ขว้าง"?

คำสำคัญ “Throw” ใช้เพื่อระบุอย่างชัดเจนว่าเป็นข้อยกเว้น ในขณะที่ “Throws” ใช้เพื่อจัดการข้อยกเว้นที่ตรวจสอบแล้วสำหรับการแจ้งคอมไพเลอร์อีกครั้งว่ามีการจัดการข้อยกเว้น การพ่นจำเป็นต้องใช้ในคำจำกัดความของวิธีการและในขณะที่เรียกใช้วิธีการที่ทำให้เกิดข้อยกเว้นที่ถูกตรวจสอบ


20) พูดถึงคลาสใดใน JDK ที่ใช้รูปแบบซิงเกิลตัน

Java.lang.Runtime คลาสใช้รูปแบบซิงเกิลตันใน JDK


21) กล่าวถึงข้อจำกัดของการใช้รูปแบบซิงเกิลตันคืออะไร?

รูปแบบซิงเกิลตันช่วยให้แน่ใจว่าคลาสมีเพียงอินสแตนซ์เดียวและจัดให้มีจุดเข้าถึงส่วนกลาง แต่ในขณะเดียวกัน สิ่งนี้ก็กลายเป็นข้อจำกัด เนื่องจากคลาสส่วนใหญ่ในแอปพลิเคชันคุณจะต้องสร้างหลายอินสแตนซ์


22) พูดถึงความแตกต่างระหว่าง VO และ JDO คืออะไร?

ความแตกต่างระหว่าง JDO และ VO ก็คือ JDO เป็นเทคโนโลยีถาวรที่แข่งขันกับ Entity Bean ในการพัฒนาแอปพลิเคชันระดับองค์กร ช่วยให้คุณสามารถสร้าง POJO (ออบเจ็กต์ Java แบบเก่าธรรมดา) และคงไว้ในฐานข้อมูลได้

ในขณะที่ VO ย่อมาจาก Value Objects ซึ่งหมายถึงค่าสัมบูรณ์tracรูปแบบการออกแบบที่ใช้ร่วมกับ entity beans, jdbc และอาจรวมถึง JDO เพื่อเอาชนะปัญหาการแยกส่วนและการทำธุรกรรมที่พบได้ทั่วไปในแอปพลิเคชันระดับองค์กร

คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)

สรุปโพสต์นี้ด้วย: