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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to