myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mario Ivankovits <ma...@ops.co.at>
Subject Re: [Orchestra] Binding an arbitrary instance to a conversation
Date Fri, 10 Oct 2008 09:36:57 GMT
Hi!
> The current approach adds interface ConversationBinder, and a setter 
> method has been added to the Conversation class. Each 
> dependency-injection-specific layer then provides a different 
> implementation of this (eg SpringConversationBinder) when creating 
> Conversation instances.
>
> An alternative would be for each dependency-framework to instead 
> return a subclass of Conversation, then the binder interface would not 
> be needed.
A simialar pattern I tried to achive with the framework adapter, you 
have a basis class everyone can inherit from and implement the required 
functionality.
IMHO the framework adapter shows the bad side of that pattern. The 
framework adapter just collects various aspects of the used framework 
and tries to provide a common api for Orchestra.
When we think of "aspects" here, it would have been better to build 
small pieces for each aspect of the framework (spring, jsf, jsp, junit) 
and let the framework adapter just delegate to them.

Said that, I think your ConversationBinder is in the same category of 
patterns.

The Conversation object itself is not bound to, nor does it depend on, 
any environment. Going the subclass way will change that. Now the 
Conversation instance itself depends on Spring then.
What, if in the future we are going to add other aspects to the 
Conversation which then depends on JSF?
Without multiple inheritance we might end up with many different 
conversation implementations.

I'd keep your solution (ConversationBinder interface) which will become 
much more powerfull the more aspects we add to the Conversation.

Ciao,
Mario


Mime
View raw message