This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I start the B&S assignment and I like to discuss my design.
I want to build a 3 tier architecture. DB-Server: The Data-class implements the DBMain-Interface and has a LockMgr (Singleton), who has a Hash Map with the ClientKey/RecordNo. The LockMgr takes care of the locking.
The Data Facade wraps the Data-class and handles the business logic. It has a RecordMgr (Singleton) who holds all the records of the file in the cache and take care of persistence. One record is kept as a record-class (DAO). The Data Facade has also the Client Key for the locking. So there is one Data Facade for each Client. The Data Facade implements the DataFacadeIFC which is the Interface for the Client.
Network-Part: I've a B&SFactory who creates a B&SServiceImpl. The B&SServiceImpl implements the DataFacadeIFC so the Client can handle with it.
Client: The Client has a Connector Factory who creates a Data Facade or a B&SServiceImpl depends on the mode (alone or network). I think this should work, because Data Facade and B&SServiceImpl have the same Interface.