สถานการณ์:
- สแต็ค: Java, Spring, Hibernate
- รุ่น: แอปพลิเคชันไคลเอนต์ - เซิร์ฟเวอร์
- รูปแบบ: Model-View-Controller (MVC)
คลาส Service Layer มีพฤติกรรมสามอย่าง:
บริการบางอย่างมีกฎเกณฑ์ทางธุรกิจภายในวิธีการและมอบสิทธิ์ให้กับแอปพลิเคชัน ชอบ:
EntityManager.save (นิติบุคคล);
บริการบางอย่างเรียกฟังก์ชันฐานข้อมูล (ผ่านพารามิเตอร์) ไลค์:
CallableStatement cls = con.prepareCall ("{เรียก databaseFunction (args)}");
บริการบางอย่างมีวิธีการที่มีทั้งพฤติกรรม
คำถามของฉัน:
- มีปัญหาในการรับสายบริการโดยตรงหรือไม่ - ฟังก์ชั่นฐานข้อมูล? นี่ถือว่าเป็นการกระทำที่ไม่ดีหรือไม่? แบบจำลองสถาปัตยกรรมจะใช้กับโครงการเช่นนี้ได้อย่างไร
- มีปัญหาใดบ้างหรือไม่ที่มีการผสมผสานพฤติกรรมในบริการเดียวกัน เช่นการทำธุรกรรมและความสอดคล้อง?
- ในกรณีของการบำรุงรักษาการห่อหุ้มนี้ทำให้ผู้พัฒนาไม่ชัดเจนว่าเขาควรเปลี่ยนฟังก์ชั่นในฐานข้อมูลหรือไม่? จะหลีกเลี่ยงสิ่งนี้ได้อย่างไร
- สถานการณ์นี้เกิดขึ้นในแอปพลิเคชันอื่น ๆ ทั่วโลกหรือเป็นเพียงข้อผิดพลาดทางสถาปัตยกรรมหรือไม่?