ยกตัวอย่างของแอพพลิเคชั่น Ruby on Rails แบบง่าย ๆ มันสร้างLogger
วัตถุในระหว่างกระบวนการโหลดแอปพลิเคชัน:
# in environment.rb
config.logger = Logger.new(<STDOUT | file | whatever>)
# and in our application we use this object
logger.warn "This process is taking too long to process. Optimization needed."
คำถามของฉันคือทำไมเราไม่ใช้วิธีการเรียน (หรือวิธีการคงที่) สำหรับการเข้าสู่ระบบ? จะไม่Logger.warn
ขยายมากกว่าLogger.new.warn
? หรืออย่างน้อยดูเหมือนว่าใช้งานง่ายกว่าLogger.warn
Logger.new.warn
แม้ว่าLogger.new
จะเป็นวัตถุซิงเกิลตันมันมีข้อดีอะไรบ้าง?