* dependency and new() — factory to replace new()
See also post on eclipse’s factory refactor.
see [[ head first design patterns ]]
* delegating — Abstract-Creator object delegates instantiation to concrete subclasses, because of “knowledge” and “responsibility”
* knowledge — about a specific concrete class is usually with one developer
* responsibility — ideally each developer should be owner of a small, well-defined API. Other developers write client objects
* decouple — ideally different interacting objects should not break each other when one /invariably/ undergoes a change.