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

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

 

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

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

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


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

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

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

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


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

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


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

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


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

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

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

6) พูดถึงรูปแบบใดที่ใช้เมื่อเราจำเป็นต้องแยกสิ่งที่เป็นนามธรรมออกจากการนำไปปฏิบัติ?

เมื่อเราต้องการแยกนามธรรมออกจากการนำไปใช้เพื่อให้ทั้งสองสามารถเปลี่ยนแปลงได้อย่างอิสระ เราจะใช้รูปแบบบริดจ์


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 object แสดงถึงรูปแบบการออกแบบที่เป็นนามธรรมซึ่งใช้ร่วมกับ Entity Bean, jdbc และแม้กระทั่ง JDO เพื่อเอาชนะปัญหาการแยกและการทำธุรกรรมที่พบบ่อยในแอประดับองค์กร

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