using interface is always helpful?
<p>I am sorry that this is the question related to an advice rather than an issue.</p>

<p>I would like to know when I should use an interface and when I should not.</p>

<p>In order to make it clear about my question, I am going to write my current implementation with and without interface:</p>

<p><strong>WITH INTERFACE</strong></p>

<pre><code>interface IObjectBuilder
{
   string Build();
}

class ObjectABuilder: IObjectBuilder
{
    ObjectABuilder(Object A){}

    public string Build();
}

class ObjectBBuilder: IObjectBuilder
{
    ObjectABuilder(Object B){}

    public string Build(){}
}
</code></pre>

<p><strong>WITHOUT INTERFACE 1:</strong></p>

<pre><code>class ObjectABuilder
{
    ObjectABuilder(Object A){}

    public string Build(){}
}

class ObjectBBuilder
{
    ObjectBBuilder(Object B){}

    public string Build(){}
}
</code></pre>

<p><strong>WITHOUT INTERFACE 2:</strong></p>

<pre><code>class ObjectABuilder
{   
    public string Build(Object A){}
}

class ObjectBBuilder
{

    public string Build(Object B){}
}
</code></pre>

<p>So, I would like to know, in this case:</p>

<ol>
<li><p>should I use with and without interface and why?</p></li>
<li><p>for the case of using without interface, what do you think of constructing the class with objectA (b) is better or just pass it directly in the method?</p></li>
</ol>

<p>Thanks in advance.</p>
