Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Zookeeper >> mail # dev >> Get rid of unnecessary Interfaces

Copy link to this message
Re: Get rid of unnecessary Interfaces
that's right tom. many of those interfaces were put in by design so
that later we can have other implementations, some of them were not
there originally. i agree thomas that it is a pain that you have to do
two clicks in eclipse to get to the actual implementation.

i believe the beans are used for jmx.


On Fri, Sep 23, 2011 at 2:31 AM, Tom Klonikowski <[EMAIL PROTECTED]> wrote:
> Hi Thomas,
> just because there's only one implementation doesn't mean they're
> unnecessary. Think about implementations yet to come - e.g. imagine
> storing a snapshot into some kind of distributed fs or memory.
> I think those interfaces exist by design.
> Regards,
> Tom
> Am 23.09.2011 10:16, schrieb Thomas Koch:
>> Hi,
>> there are some interfaces in the ZK code that have only one implementation. I
>> propose to get rid of the interfaces and use the classes directly:
>> org.apache.zookeeper.server.Stats
>> org.apache.zookeeper.server.persistence.SnapShot
>> org.apache.zookeeper.server.persistence.TxnLog
>> There are other interfaces, named *Bean, which seem to be necessary, but I
>> don't know about beans.
>> Rationale:
>> http://www.symphonious.net/2011/06/18/the-single-implementation-fallacy/
>> http://rrees.wordpress.com/2009/01/31/programming-to-interfaces-anti-pattern/
>> tl;dr:
>> - Browsing the code gets harder since the IDE always jumps to the interface,
>> instead of to the implementation.
>> - Changing the method signatures involves changing the interface and the
>> class.
>> - There are more things in the code base to confuse you.
>> May I fill an issue and upload a patch?
>> Regards,
>> Thomas Koch, http://www.koch.ro