У меня есть одноэлементный класс. MsgLog
Можно ли использовать этот класс, как показано ниже? Что-то не так с этим?
public class SomeBean {
MsgLog log = MsgLog.getInstance(); // IS THIS FINE?
// some code
private void someMethod() {
log.printIt(" test ");
}
}
Да, это прекрасно. Однако вы должны сделать это private static final
окончанием.
В общем, есть проблемы с одиночками; лучше для класса принять вещи, от которых он зависит, от параметров конструктора, чем для того, чтобы класс зависел от одиночных чисел.
Но много кода обрабатывает журнал специально, к лучшему или к худшему.
Да, это вполне приемлемо, и большинство из них утверждают, что это правильный способ использования класса Logger. Вот еще один ответ, который объясняет это немного лучше: