Forums
New posts
Search forums
Members
Current visitors
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Menu
Log in
Register
Install the app
Install
Forums
Archive
Archive
Java
Please comment on this class hierarchy design
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
[QUOTE="Marco Schmidt, post: 530379"] Avi Abrami: Instead of really making use of inheritance, the base class A already knows about its extending classes. Every new extension D, E etc. would lead to a modification of A. This smells like very bad design. Imagine a new extension of java.util.AbstractList that would have to modify AbstractList itself. The more natural OOP approach would be: public abstract class A { protected Collection list = new ArrayList(); } public class B extends A { protected BMember bMember = new BMember(); } public class C extends A { protected CMember cMember = new CMember(); } or public abstract class A { protected Collection list = new ArrayList(); protected Member member; } public class B extends A { public B() { member = new BMember(); } } public class C extends A { public C() { member = new CMember(); } } However, a "real" evaluation of the code is impossible. I'd have to know more about what A, B, C, Member, BMember and CMember do. How do they interact? That's why I'm unclear whether that (B|C)Member field should be in A or in its heirs B and C. Maybe BMember and CMember add new methods that must be called in B and C. A lot of typecasts would be necessary to get a BMember and CMember back from a Member field. That's when I'd prefer my first approach. On the other hand, if BMember and CMember only implement or modify methods from Member, the second approach is probably better. Regards, Marco [/QUOTE]
Verification
Post reply
Forums
Archive
Archive
Java
Please comment on this class hierarchy design
Top