<p>What are some <em>common</em>, <em>real world examples</em> of using the Builder Pattern?  What does it buy you?  Why not just use a Factory Pattern?</p>

You use it when you have lots of options to deal with.  Think about things like jmock:
```
```
m.expects(once())
    .method("testMethod")
    .with(eq(1), eq(2))
    .returns("someResponse");
```
```
It feels a lot more natural and is...possible.
There's also xml building, string building and many other things.  Imagine if
```
java.util.Map
```
had put as a builder.  You could do stuff like this:
```
```
Map<String, Integer> m = new HashMap<String, Integer>()
    .put("a", 1)
    .put("b", 2)
    .put("c", 3);
```
```