Hi,

as I'm poking IBehavior I came across AbstractBehavior and its descendent AbstractHeaderContributor

Both claim to implement IHeaderContributor. Why is it this way?

I poked around further and dropped the IHeaderContributor interface in AbstractBehavior which revealed that quite some Classes use the renderHead method of AbstractBehavior, but also quite some don't.

Doubts bugged me to soon to come up with a complete patch for that, so instead I'm writing this e-mail now.

So why is it this way? Shouldn't IHeaderContributor rather be droped out of AbstractBehavior and let all the other classes that need the renderHead descend from AbstractHeaderContributor, or HeaderContributor? Once at it I'd also change the housekeeping of the contributors in AbstractHeaderContributor, like

protected abstract List<IHeaderContributor> etHeaderContributors();

instead of:

public abstract IHeaderContributor[] getHeaderContributors();

what you think?

Martin

Reply via email to