>>>  > I disagree with the characterization that they do not have a "real
concept
> behind them" they represent contracts of entities that have similar
> attributes. IMO, all the various *XxxHolder*(s) represent an entity that
> provides whatever these "attribute" interfaces hold.

>>>  Well, I would agree on this principle in theory.
However, I've seen no evidence throughout the code that this is actually
useful.

Here is something that I see as a useful consequence of these "marker"
interfaces - some degree of standardization: e.g., if more than 1 entity
displays the same "behavior" and/or "attributes", it makes sense to call
them by some standard name - e.g., avoid *getSession, getClientSession,
getCurrentSession, getEstablishedSession* in different entities that
basically expose a *ClientSession*. To me it is another aspect of the
D.R.Y. principle since it makes it easier to search for code that refers to
a known entity knowing that it will use a standard way to expose it.

Reply via email to