What are some of the most common Design Patterns that are used in Web/Enterprise Application and why they are used ?
Note: Answer to why part should be based upon listing the problems which they tend to solve ?
I use Inversion of Control a lot.
In particular, when persisting / loading objects. It helps when we're not sure if the data is going to come from a database, a web service, or some other mechanism.
By using an interface and allowing multiple sources to expose a simple API for save / retrieving and allowing the object itself to know which API calls to make we end up with a very easy to manage architecture.
One example of this is here.