File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Developer Certification (SCJD/OCMJD) and the fly likes data class, extend or aggregate Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Developer Certification (SCJD/OCMJD)
Bookmark "data class, extend or aggregate" Watch "data class, extend or aggregate" New topic
Author

data class, extend or aggregate

Bhuvan mehra
Ranch Hand

Joined: Mar 29, 2002
Posts: 69
hi All!
needs your comments.
i have extended Data class and subclass is newData. i extended Data class
instead of adding new fuctionalities like cFind(), lock()/unlock(), but as we
know synchronization is not part of inheritance. child class inherits methods
but without syn.?
so instead of inheritance, should i aggregate(has a) Data in newData and
provide new fuctionalities and redirect call to methods of data class so that i
will be able to get syn. feature also.
my examination date 18th of this month. need your comments asap.
thanks and regards,
bhuvan.
Sai Prasad
Ranch Hand

Joined: Feb 25, 2002
Posts: 560
I suggest if you can come up with convincing reasons to extend Data class, you are ok. I did it without extending the Data class because I was able to come up with only the reasons below, which are not impressive:
1) Make the Data constructor protected and thereby forcing the programmer to create the Singleton instance of the sub class. But when you have to deal with more tables, the programmer has to remember to implement Singleton.
Instead you can create a server side Factory to make sure you create one instance of Data object for every table or db file.
2) It is possible for the Data object to delegate the value comparison during criteriaFind() to the sub class instance.
Instead you can check for the String "any" in the CriteriaFind() method of the Data class. I think this is ok for the assignment.
You can also use ideas by Mark's earlier posting about criteriaFind(). If the user types "any" in any search fields, you pass blank values to the server and if all the fields have blank values, the search will bring all the records.
So after considerable thought, I decided to use a server side Factory to create only one instance of Data for each table or db file.
Peter den Haan
author
Ranch Hand

Joined: Apr 20, 2000
Posts: 3252
Originally posted by Bhuvan mehra:
i extended Data class instead of adding new fuctionalities like cFind(), lock()/unlock()
As SP said: I assume you have convincing reasons why a method like criteriaFind() should not be part of Data.
but as we
know synchronization is not part of inheritance. child class inherits methods but without syn.?
It's not quite like that. The base class functionality remains synchronized! So you only have to worry if there are any methods you are adding or overriding. When you override a method, the base class code remains synchronized but any code you add in the subclass will not be. Unless you add synchronization in the subclass as well. Whether you need to do this depends on how the subclass code works...
- Peter
Bhuvan mehra
Ranch Hand

Joined: Mar 29, 2002
Posts: 69
thanks Peter,
actually cfind() is part of Data but lock()/unlock() is part of child class.
i was worried about cfind() and other inherited methods which are syn., but you said that my assumption is wrong that inheritable methods get inherited without syn. feature.
thanks for making my concept correct.
regards,
bhuvan.
 
wood burning stoves
 
subject: data class, extend or aggregate