Is it a good idea/standard practice to implement DAO (Data Access Objects) as singleton? If DAOs are implemented as singleton there will be only one instance of a DAO for all users. Other users will have to wait until first user completes the execution of any method of the DAO. So won't it affect the performance? I have same doubt about implementing delegates also.