As the subject says, many discussion on design patterns have occurred. However I need a good example to implement in my project. An application using struts + hibernate would be a plus. Hopefully the example also does some big joining at the database, and a few master detail forms. (seems like a requirement for a mid-scale project ;-) ). The current way, which I'm implement is using <View> <Business Logic> <DataAccess> Action -> <usecase>managerBD -> <usecase>DAO The DAO uses ServiceLocator to get database connection. I know its quite lame and doesn't have clean separation because we don't have an interface for each DAO but we have a parent class BaseDAO which all DAOs subclass from. Hopefully, with the example, the next project will be better designed Thanks Amin