Hi Didier,

thanks for your reply. I will need some time to think about it.

> >Work interfaces provide the client's view on the
> >component whereas the latter describe the container's view. The client is
> >and should not be concerned with the pecularities of the
> component it uses.
> >
> Well, i can only agree with you! In fact, this has took me the most of
> my design time. This may be seem ridiculous due to the size of the
> interface. However, here is my thought about this.

No, it does NOT seem ridiculuous. I have been spending hours and hours
trying to decide whether a given class should be called a Transformer or
rather a Generator. It's always those seemingly little things...

> I first started with a custom interface. I had to install and disinstall
> the aspect on demand. In order for the aspect to get the specific
> pointcut manager implementation, i had to give it to the aspect.
> So i made this:
>
> interface Aspect
> {
>     public void install(PointcutManager pointcutManager);
>     public void disinstall();
> }
>
> However, the core PointcutManager was not the only one an aspect may
> need. Althougth, it could get those other services via a standard
> service lookup.
> So i wondered why PointcutManager was priviledged compared to the
> others. (all the more since many people will only use the
> DesignatorPointcutManager once it will be implemented)
>  From this, i decided that an aspect should retrieve all the pointcut
> managers via service lookups. So the aspect had only to be instalable
> and disinstalable. This pushed me to the Startable interface.
>
> Why i did decide to explicitelly put them in the Aspect interface is
> because i did not want a marker interface as i find this does not add
> value. Maybe there should not be any Aspect interface at all ? But then
> the AspectManager would not know what it starts and stops...

Let me restate this, just to see if I got your point: you started with the
interface above. Then you realized that this resembles the Serviceable
interface. You started to ask yourself: what is the extra value the Aspect
interface (as shown above) offers compared to the Serviceable interface? You
could not find any. So what about a mere marker interface? (I agree with
you: there's got to be a very compelling reason for such a thing). So you
ended up merging Aspect and Serviceable. Is that right?

Being a mathematician (well, hopefully soon being a mathematician), I am
inclined to say: it all boils down to the question "What exactly is an
aspect?". Advices, Pointcuts, Interceptors, all those concepts are more or
less easily defined. And what's more, those definitions lend themselves to
straightforward implementations. No problems so far. But what is an aspect?
A crosscutting concern? No easy way to encapsulate such a beast into a neat
and compact class/interface. Need to think about it.

> Maybe i should came back to the first design above. Can you tell me what
> is your feeling with this ?
> Else what could be the benefit of a marker interface ?

For the moment, I can see no benefit in a mere marker interface. What is it
you want to mark? For the time being, I would prefer your original approach.
Yet I must say I am not satisfied with it either (if I may say so). You
should ask some of the Avalon guys. They are a lot smarter than I am and
have certainly much more experience in software architecture than me.

> >Well, that's just my 2 ct. Anyways, hope to see this baby growing.
> >
> >Cheers,
> >Olaf
> >
> >
> That's not 2 ct for me that's lot more than 20 euros. :) Thanks very
> much for the comments.
> Hope *the baby* will be usefull for many ;)
>
> A+. Didier.

Glad you found my comments useful.

Keep up the good work,
Olaf


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to