I am attaching here a file with a tree structure. It is a directory structure.
In that image D1 is a parent directory, D2,D3,D4 are subdirectories and F1, F2 represents files. I want to create my own classes which represents this directory structure.
1) Please note that I dont want to use TreeSet or any other collection because these are built in classes in Java. I want to create my classes.
2) If i create D1 as an interface or abstract class. for example D1 is abstract class the D2,D3,D4 must extends D1 but problem is in future if I want to create another subdirectory lets say D5 then I have to create a new subclass as D5. That means for each new sudbdirectory creation I have to create anew class. This is not correct. I want to create classes such as by simply creating object of those classes we can create subdirectory.
The diagram/description you have provided conveys the following information.
1) It is a parent child relationship.
2) All objects in the chain are of the same type.
3) All object can contain a collection of similar objects (parent having children)
4) All children might need to know who the parent is. (this would depend on your requirement)
As you can see, you really need to design an object which will satisfy these criteria.
If you agree to this premise, how would you design the object?