From: Geoff H. <ge...@ge...> - 2004-12-14 02:13:45
|
On Dec 12, 2004, at 10:23 PM, zgliu wrote: > In my opinion, the abstraction level of OBNodeBase, OBEdgeBase and > OBGraph should be combined into OBAtom, OBEdge and OBMol. Because the > introduce of this abstraction level brings us nothing but the > complexity of class hierarchy, the difficulty of design, and a > confusing interface. There are periodic debates one-way or the other on this. Personally, I agree with you that currently there's not much advantage to the class hierarchy--since most compilers are very strict about casting and there's nothing intermediate between the various base classes and OBAtom, OBBond, and OBMol. Others have pointed out that if you wanted to introduce classes with less overhead (e.g., for different coordinate systems, octree searching, whatever...) you're stuck with relatively monolithic OBAtom, OBBond, and (most of all) OBMol. I think this merits more discussion soon. I'd be happy to see proposals -- I'm assuming you're all in favor of getting rid of the base classes. Any other changes you'd like to see to the class hierarchy? Cheers, -Geoff |