[logback-dev] on immutability
ceki at qos.ch
Tue Feb 24 14:26:10 CET 2009
Joern Huxhorn wrote:
>> Marking an object instance immutable
>> conveys intent. You can build additional logic on top of the
>> immutability hypothesis. If someone intentionally circumvents
>> immutability, the ensuing problems are theirs, not ours.
> That's exactly what I was trying to say in the following paragraph.
> Using an ImmutableLoggingEvent interface should be sufficient to mark
> that intent. Casting from ImmutableLoggingEvent to MutableLoggingEvent
> is similar to using reflection magic.
Only later did I notice that we were in agreement about the
consequences of immutability, i.e. intent ~ contract. Sorry for taking
your comments out of their context.
The distinction you make between MutableLoggingEvent and
ImmutableLoggingEvent does not accurately reflect the distinction I am
trying to make between LoggingEvent and LoggingEventMemento which is
mostly about serialization and only marginally about mutability. Both
LoggingEvent and LoggingEventMemento could be made immutable. I added
the makeMutable() method to LoggingEventMemento as an afterthought.
Logback: The reliable, generic, fast and flexible logging framework for Java.
More information about the logback-dev