Development AntiPattern: The Blob - Refactoring
Step 2:Find "natural homes" for these contract-based collections of functionality and them migrate them there
Notes:
The second step is to look for "natural homes" for these contract-based collections of functionality and them migrate them there.
In our example, we would gather operations related to catalogs and migrate them from the LIBRARY class and move them to the CATALOG class as shown.
We would do the same with operations and attributes related to items, moving them to the ITEM class. This both simplifies the LIBRARY class, and makes the ITEM and CATALOG classes more than simple encapsulated data tables. The result is a better OO design.