I have a question for that need know absolution from this invoke. why do we use list definition? when does useful for site definition in SharePoint?
You use a List definition if you want for example a common list structure that uses custom content types and views for project-item tracking in multiple Web sites, but the built-in lists are not suitable. For this you can create a new list definition feature that will can activated on each Web site that requires the list.
Instead of a Site definition its better to create a WebTemplate. You use a WebTemplate if all pages in a set of SharePoint sites have a common look and feel. For this you can create a WebTemplate
The use of custom site definitions was discouraged by Microsoft back in SharePoint 2010. They are still allowed but the preferred method is to deploy the changes to your site as features that can be turned on and off as needed. This allows for granular control of changes and even allows most upgrades to propagate to all sites using the feature without having to reprovision each site.
Custom Site Definitions also have a horrible track record of breaking major SharePoint upgrades without providing a clear path to resolution that doesn't involve rebuilding the entire site.