Trong trường hợp này, chúng tôi đang xử lý các phương pháp nhà máy , như tôi đã nêu trong my comment.
Xem đặc điểm kỹ thuật API có liên quan trên Logger
Lấy một logger đặt tên theo các giá trị của tham số tên. Nếu logger được đặt tên đã tồn tại, thì cá thể hiện có sẽ được trả về. Nếu không, một cá thể mới sẽ được tạo.
Theo mặc định, trình ghi nhật ký không có cấp độ được đặt nhưng thừa kế nó từ tổ tiên gần nhất của chúng với cấp độ đã đặt. Đây là một trong những tính năng chính của log4j.
Các factory method pattern là một mẫu thiết kế creational, và, theo Wikipedia, thường là hữu ích trong những tình huống sau:
Các mô hình nhà máy có thể được sử dụng khi:
- Việc tạo của một đối tượng ngăn cản việc tái sử dụng mà không cần sao chép mã đáng kể.
- Việc tạo đối tượng yêu cầu quyền truy cập vào thông tin hoặc tài nguyên không được chứa trong lớp soạn thư.
- Quản lý suốt đời đối tượng được tạo phải được tập trung để đảm bảo hành vi nhất quán trong ứng dụng.
Tất cả ba trong số này đều có thể áp dụng ở đây ... ai biết loại công việc nào tìm được trình ghi chính xác? Bạn không thực sự quan tâm đến việc tạo ra một logger thương hiệu mới mỗi khi bạn muốn sử dụng một ... thay vào đó, tập trung của bạn chủ yếu là chỉ - để sử dụng một.
Creative Commons Wiki cũng có một relevant article,
phương pháp Factory đôi khi được sử dụng thay cho nhà thầu đối với bất kỳ một số lý do:
- Một số ngôn ngữ (chẳng hạn như Java) không cho phép các nhà xây dựng có tên hữu ích
- Một số ngôn ngữ (như Java) không cho phép các nhà xây dựng có tên khác nhau (có thể cần thiết nếu bạn muốn sử dụng cùng một chữ ký phương thức cho hai nhà thầu)
- Để cho phép cùng một ví dụ để được tái sử dụng thay vì tái tạo mỗi lần nó là cần thiết (xem FlyweightPattern)
Tôi nghĩ là lựa chọn thứ ba có lẽ là thích hợp nhất ở đây. Sử dụng tạo thủ công Logger
mới, bạn không thể chia sẻ chúng một cách đầy đủ. Sử dụng mặt tiền getLogger
cho phép điều này xảy ra một cách minh bạch.
Tất cả trong tất cả, việc sử dụng các phương pháp nhà máy thường cho phép mã thẳng tiến hơn mà không làm lộ công việc mà bạn không nhất thiết phải quan tâm.
[Mẫu phương thức nhà máy] (http://en.wikipedia.org/wiki/Factory_method_pattern) – oldrinb
'Logger.getLogger' gọi 'nhật ký mới' nội bộ. Luôn luôn có một nhà xây dựng gọi một nơi nào đó - không phải lúc nào cũng ở * mã * của bạn. – Blorgbeard
WOW điều này có rất nhiều câu trả lời trong một thời gian ngắn ... – Doorknob