Managing Object Construction and Behavior Using Patterns