On Wed, 19 Sep 2001 18:28, Jeremias Maerki wrote: > Hi there > > After looking through the documentation and the mailing list archives I > still don't know why there are two interfaces Configurable and > Parameterizable. I've seen some mails from April when Parameterizable > was introduced, but that didn't help. Also, the API docs simply state > that the two interfaces are incompatible. I currently believe > Parameterizable isn't needed, because I can do all > configuration/parameterization I need using Configurable. > > Would someone be so kind as to explain to me the differences and relieve > me of my confusion? Many thanks in advance.
Well they really serve different purposes. Parameters supply "flat" configuration data and can be considered to be like simplified property files with extra type safe utility methods. Configuration objects supply "hierarchial" configuration data and can be considered as simplified XML style configurations with extra type-safe utility methods. In most cases, Configuration is acceptable but there is cases where Parameters are a better choice to configure the system (usually when the configuration data is naturally flat). For instance I quite often use Parameters to represent config data passed in via Command Line arguments. I also use it to contain names of classes implementing an interface. So say if I had pluggable components in my application that implemented interfaces com.biz.A, com.biz.B and com.biz.C then it is useful to have Parameter object map them to implementation instances. ie com.biz.A=com.biz.AImpl com.biz.B=com.biz.BImpl com.biz.C=com.biz.CImpl And if I want to change the implementing class I just change a swith on CLI or in proeprties file and voila. In these cases XML-style config data is often clumsy and heavy-weight. Does that make any sense ? ;) -- Cheers, Pete ----------------------------------------------------------- "Remember, your body is a temple; however, it's also your dancehall and bowling alley" -- Dharma Montgomery ----------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
