[ https://issues.apache.org/jira/browse/POOL-203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13172084#comment-13172084 ]
Phil Steitz commented on POOL-203: ---------------------------------- I tend to agree with Mark on this. It may be a matter of taste; but I see it as desirable actually that "the main code" be aware of the internals of this particular data structure. It makes the code easier for me to understand and trace. There are a lot of things that you have to hold in your head when working with this code, no matter how you cut it and having more of the structure immediately evident makes it a little easier to work with. Better in-line and javadoc documentation explaining all of the invariants and contracts is definitely needed; but I am not sure more data abstraction will really help much at this point. Also, the first two above are likely trivial because they are not accessed that frequently, but the last one might have a slight negative performance impact, as it is very frequently activated and, like the other two, forces an additional stack operation to activate the wrapper function. > GenericKeyedObjectPool.ObjectDeque could be better encapsulated > --------------------------------------------------------------- > > Key: POOL-203 > URL: https://issues.apache.org/jira/browse/POOL-203 > Project: Commons Pool > Issue Type: Improvement > Reporter: Sebb > Priority: Minor > > GenericKeyedObjectPool.ObjectDeque is currently basically just a collection > of Objects with getters. > This necessarily exposes the implementation, and makes adding invariant > checks a lot harder - e.g. ensuring createCount >=0. > The suggestion is to replace the getters with functional methods, for example: > objectDeque.getCreateCount().incrementAndGet() => objectDeque.createdEntry(); > objectDeque.getAllObjects().put(t, p); => objectDeque.addNew(t, p); > objectDeque.getIdleObjects().addFirst(p)/addLast(p) => > objectDeque.idle(p,getLifo()) > The new methods could include assertions for invariants, and adding debug > would be a doddle. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira