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

การนำ Singleton Pattern ไปใช้งาน

แอปพลิเคชันของคุณต้องจัดการการตั้งค่า logging ให้ใช้ร่วมกันได้ทั่วทุกคอมโพเนนต์ แต่ขณะนี้แต่ละคอมโพเนนต์สร้าง LogManager ของตัวเอง ทำให้การตั้งค่าไม่สอดคล้องกัน ให้เติมโค้ดให้สมบูรณ์โดยใช้ Singleton Pattern เพื่อให้ทุกคอมโพเนนต์ใช้การตั้งค่า logging ชุดเดียวกัน

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การปรับแต่งโค้ดใน Java

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เพิ่มตัวแปร static ชื่อ instance ที่มีชนิดเป็น LogManager
  • กำหนดให้ constructor เข้าถึงได้เฉพาะภายในคลาสเท่านั้น
  • สร้าง instance ของ LogManager เฉพาะเมื่อค่าปัจจุบันเป็น null

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

public class Main {
    public static void main(String[] args) {}
}

class LogManager {
	// Add static instance variable to hold the instance
    private static ____ ____;
    private Map logConfig;
    
    // Make constructor accessible only from within the class
    ___ LogManager() {
        logConfig = new HashMap<>();
    }
    
    public static LogManager getInstance() {
    	// Only create if instance is currently null
        if (____ ____ ____) {
            instance = new LogManager();
        }
        return instance;
    }
}
แก้ไขและรันโค้ด