4
วิธีการหลีกเลี่ยงการทำซ้ำตรรกะระหว่างคลาสโดเมนและแบบสอบถาม SQL คืออะไร
ตัวอย่างด้านล่างเป็นสิ่งประดิษฐ์โดยสิ้นเชิงและจุดประสงค์เพียงอย่างเดียวคือเพื่อให้ได้จุดของฉัน สมมติว่าฉันมีตาราง SQL: CREATE TABLE rectangles ( width int, height int ); ระดับโดเมน: public class Rectangle { private int width; private int height; /* My business logic */ public int area() { return width * height; } } ตอนนี้สมมติว่าฉันมีความต้องการที่จะแสดงให้ผู้ใช้เห็นพื้นที่ทั้งหมดของรูปสี่เหลี่ยมผืนผ้าทั้งหมดในฐานข้อมูล ฉันสามารถทำได้โดยดึงแถวทั้งหมดของตารางเปลี่ยนเป็นวัตถุและวนซ้ำไปมา แต่มันดูโง่มากเพราะฉันมีรูปสี่เหลี่ยมผืนผ้ามากมายในตาราง ดังนั้นฉันทำสิ่งนี้: SELECT sum(r.width * r.height) FROM rectangles r ง่ายรวดเร็วและใช้จุดแข็งของฐานข้อมูล …