To use or not to use a nested class when dealing with configuration settings
<p>My program has a ReportConfiguration class that is used to store configuration information for the report.  Logically, there are many areas that need to be configured, namely in how certain types of sections are displayed etc.  A friend suggested that I take these sections and make them nested classes, such that:</p>

<pre><code>public abstract class ReportConfiguration{
    private class AssessmentTypeConfiguration{
    }
} 

public class MyConfiguration : ReportConfigration{}
</code></pre>

<p>Essentially, while I am going to be using these, I will be exposing these configuration classes to other developers who may want to extend some functionality, or write some tools that require the configuration to be modified.  So I want them to be able to extend the configuration class, but there may be certain configuration options I do not want them to touch, or that just logically seem as if they should be nested.</p>

<p>The question: Is it even necessary to use separate classes, or just make one very large class with lots of properties for every configuration option?</p>
