There is quick summary below of clear consensus on the implication of
Stoppable and Startable interfaces.  Perhaps it would be a good idea for the
rationale for the respective positions to be put forward in more detail.  In
my comment I noted that a non-stoppable component is not desirable and that
Startable should inherit from Stoppable.  Berin suggested the inverse -
Stoppable inheriting from Startable which suggests that there are reasons
that a component must be started in order to be stopped -- Berin, can you
explain.

The assumptions I'm making are:

        - I am currently using dynamic components that start themselves in
          response to external events
        - however, they are still within the scope of whatever is managing
        them, and if the manager is stoppable, then all managed components
          must also be stoppable .. as such I have a case for Stoppable as
          an independent interface and Startable as an interface inheriting
          from Stoppable

Looking forward to receiving other opinions on this.

Cheers, Steve.

>From Leo:
> > >interface Startable { // better name, anyone?
> > >       void start() throws StartException;
> > >       void stop() throws StopException; // new
> > >}

>From Pete:
-1 Some things are startable without being stoppable and vice versa.

>From Berin:
> I agree.  But have Stoppable inherit from Startable because you
> can't have Stoppable without Startable.

>From Steve:
>   startable but not stoppable == dangerous, -1
>   stoppable but not startable == autonomous and manageable, 0
>
>   We could define this as:
>
>       interface Stoppable
>       {
>           void stop() throws StopException;
>       }
>
>       interface Startable : Stoppable
>       {
>           void start() throws StartException;
>       }


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

Reply via email to