A framework for implementing commonly used design patterns when using Domain Driven Design