[ https://issues.apache.org/jira/browse/ZOOKEEPER-113?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12621066#action_12621066 ]
Doug Cutting commented on ZOOKEEPER-113: ---------------------------------------- Interfaces are hard to evolve back-compatibly. So if there's a chance that user-code might implement this, it will be impossible to change without breaking that user code. Thus I generally discourage interfaces in public APIs when back-compatible releases are a project goal (which they ought to be, if you want to retain users). > ZooKeeper.java should be interface not concrete class. > ------------------------------------------------------ > > Key: ZOOKEEPER-113 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-113 > Project: Zookeeper > Issue Type: Improvement > Components: java client > Reporter: Patrick Hunt > > I think ZooKeeper class in src/java/main should be an interface rather than a > concrete class. Among other OO goodness this would give us more flexibility > when implementing tests on client code. Would also require something like a > factory to be created, which might actually work well with another JIRA we > have which is the idea to use a URI(s) rather than a host:port combination > when creating zookeeper clients. > Unfortunately this would have a big impact on clients as it's not b/w > compatible (instantiating a new client that is). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.