การนำ 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;
}
}