Using Features and Solutions will help customize sites and site templates.
Features: It helps sites to reuse functionality from one site to other sites without requiring to copy and paste XML. It is also an instance of Feature Definition.
Solutions: It helps to package Features in a cabinet (.cab) file along with meta data.
Feature Definition: It hides feature manifest contained in a feature directory and are installed at farm level.