เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การนำ 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) {}
}
แก้ไขและรันโค้ด