Answer - B.
This recommendation is also given in the AWS Documentation.
As your infrastructure grows, common patterns can emerge in which you declare the same components in each of your templates.
You can separate out these common components and create dedicated templates for them.
That way, you can mix and match different templates but use nested stacks to create a single, unified stack.
Nested stacks are stacks that create other stacks.
To create nested stacks, use the AWS::CloudFormation::Stack resource in your template to reference other templates.
Option A is incorrect since this is not the recommended design practice.
Options C and D are incorrect because these are used for packaging and deployment and not for the design stages.