วิธีการสร้างรหัส OO ที่ดีขึ้นในแอปพลิเคชันที่ขับเคลื่อนด้วยฐานข้อมูลเชิงสัมพันธ์ซึ่งฐานข้อมูลนั้นได้รับการออกแบบไม่ดี
ฉันกำลังเขียนโปรแกรมเว็บ Java ที่ประกอบด้วยส่วนใหญ่ของหน้าคล้ายกันที่ทุกหน้ามีหลายตารางและตัวกรองที่ใช้กับตารางเหล่านั้น ข้อมูลในตารางเหล่านี้มาจากฐานข้อมูล SQL ฉันใช้ myBatis เป็น ORM ซึ่งอาจไม่ใช่ตัวเลือกที่ดีที่สุดในกรณีของฉันเนื่องจากฐานข้อมูลได้รับการออกแบบไม่ดีและ mybatis เป็นเครื่องมือที่มุ่งเน้นฐานข้อมูลมากขึ้น ฉันพบว่าฉันกำลังเขียนรหัสซ้ำกันมากมายเนื่องจากเนื่องจากการออกแบบที่ไม่ดีของฐานข้อมูลฉันต้องเขียนแบบสอบถามที่แตกต่างกันสำหรับสิ่งที่คล้ายกันเนื่องจากแบบสอบถามเหล่านั้นอาจแตกต่างกันมาก นั่นคือฉันไม่สามารถหาพารามิเตอร์ของแบบสอบถามได้อย่างง่ายดาย สิ่งนี้แพร่กระจายเข้าไปในรหัสของฉันและแทนที่จะเติมแถวในคอลัมน์ในตารางของฉันด้วยการวนรอบแบบง่ายฉันมีรหัสเช่น: ได้รับข้อมูล (p1, ... , ปี่); รับข้อมูลB (p1, ... , pi); รับข้อมูลC (p1, ... , pi); รับข้อมูลD (p1, ... , pi); ... และในไม่ช้านี้จะระเบิดเมื่อเรามีตารางที่แตกต่างกันและมีคอลัมน์ต่างกัน นอกจากนี้ยังเพิ่มความซับซ้อนให้กับความจริงที่ว่าฉันใช้ "ประตู" ซึ่งมีผลต่อการแมปวัตถุกับองค์ประกอบ html ในหน้าเว็บ ดังนั้นโค้ด Java ของฉันจึงกลายเป็นอะแดปเตอร์ระหว่างฐานข้อมูลและส่วนหน้าซึ่งทำให้ฉันสร้างการเดินสายจำนวนมากโค้ดสำเร็จรูปที่มีตรรกะบางอย่างแทรกอยู่ภายใน วิธีการแก้ปัญหาที่ถูกต้องจะห่อหุ้ม mappers ORM ด้วย extralayer …