[Bioperl-l] Bio::RootI

Ewan Birney birney@ebi.ac.uk
Sun, 18 Nov 2001 14:09:12 +0000 (GMT)


On Sun, 18 Nov 2001, Elia Stupka wrote:

> Hi Lincoln, Elia here,
> 
> I think I can shed partial light on this:
> 
> > I'm puzzled as to why the root interface has any object data at all.
> > I've always thought that interfaces should have methods only, and no
> > object data.  
> 
> Well, this is one of those things that you either hate or love... I
> believe Ewan likes to call them *decorated interfaces*, the point being
> that since perl allows you to put object data methods in an interface, you
> might as well take advantage of it and put some of them in the interface.
> This makes anybody coming straight from Java or C feel pure disgust, but
> can be considered useful. In practice, as you suggest, the clean solution
> is splitting it into an interface and a super class for shared methods,
> which doesn't hurt anybody, and is a-la-proper-OO-language.

I like "decoration" to be function only.

I think what Lincoln doesn't like is the data/implementation dependence of
the RootI assumming there is a hash there - I don't like this at all.


Obviously all things are possible, and we just have to decide. I like the
rule:


  Interfaces only contain function stubs which throw or functions with
implementation which only depend on other function stubs.


  Bio::Root being a "default" implementation object with the IO smarts I
think is a good idea.





> 
> I suppose if we do it then we should at some point make an active
> decision, whether we support decorated interfaces or not.
> 
> Hope this explains it... ;)
> 
> Elia
> 
> -- 
> ******************************
> * http://www.ebi.ac.uk/~elia *
> * tel:    +65 874 1467       *
> * mobile: +65 90307613       *
> * fax:    +65 777 0402       *
> ******************************
> 
> 
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l@bioperl.org
> http://bioperl.org/mailman/listinfo/bioperl-l
> 

-----------------------------------------------------------------
Ewan Birney. Mobile: +44 (0)7970 151230, Work: +44 1223 494420
<birney@ebi.ac.uk>. 
-----------------------------------------------------------------