Hi
My design is like this:
Connection extends Remote
+ getService:FBNService
ConnectionImpl implements Connection
FBNService extends Remote
(all public methods form Data)
FBNServiceImpl implements FBNService
- database
ata (Aggregation)
(implements "all" Methods by delegation to the dataclass)
+lock and unlock are implemented with the clientID in this class
Data
+lock and unlock are implemented as a record locking without a clientId
DataMaganger
+create
ata
+close
ata
This class functions as "DataSource"
So, in my implementation the Data class is only a DataAccess class which a programmer should not access directly. If he wants to get some data he should programm like this:
Connection connection = Connection.create();
FBNService service = connection.getService(database);
To call methods:
service.xxx
Thats why I would make the class package visible.
Pascal