การนำ Lazy Initialization ไปใช้งาน
คุณกำลังทำงานเพื่อเพิ่มประสิทธิภาพเวลาเริ่มต้นของแอปพลิเคชัน Java ทีมพบว่าการสร้างการเชื่อมต่อฐานข้อมูลแบบ eager ทำให้เกิดความล่าช้าโดยไม่จำเป็น จึงต้องนำ lazy initialization มาใช้กับคลาส Database กล่าวคือ สร้างการเชื่อมต่อก็ต่อเมื่อยังไม่มีการเชื่อมต่ออยู่ เพื่อปรับปรุงประสิทธิภาพการเริ่มต้นโปรแกรม
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การปรับแต่งโค้ดใน Java
คำแนะนำการฝึกหัด
- สร้าง property ชื่อ
clientที่มีชนิดเป็นDatabaseClient - เชื่อมต่อกับฐานข้อมูลแบบ lazy
- คืนค่า database client เมื่อเชื่อมต่อแล้วเท่านั้น
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
public class Main {
public static void main(String[] args) {}
}
class Database {
// Create a property for DatabaseClient
private ____ ____
public DatabaseClient getClient() {
// Lazily connect to our database
if (client ____ ____) {
client.connect("https//our-database.com");
}
// Return only when connected
return ___
}
}
// This class is simulating a real client connecting to a database
class DatabaseClient {
public void connect(String connectionUrl) {}
}