Once the core business objects have been defined and tested, they can be used in other packages as foundations for classes to provide concrete class functionality. There are at least two advantages to taking this approach:
- The core classes keep all of the code that deals with data types, data structure, and data validation in a single place, which reduces the complexity of the other code bases that rely upon them
- Once unit tests have been created that pass for the core objects, none of the functionality that they provide will have to be tested elsewhere
- Those tests, written so that they can be executed on demand, can be integrated into a final build process, providing a complete set of regression tests that ensure that changes made in the future don't break existing functionality before executing a build
The process of building out those...