<p>I am designing a new System and I have a lot of Interfaces that will grow over time with the system. What is the best practice to name this interfaces</p>

<pre><code>ISomethingV01
ISomethingV02
etc
</code></pre>

<p>and I do this</p>

<pre><code>public interface ISomething{
      void method();
}
</code></pre>

<p>then I have to add method 2 so now what I do?</p>

<pre><code>public interface ISomethingV2:ISomething{
      void method2();
}
</code></pre>

<p>or same other way?</p>

The purpose of an interface is to define an abstract pattern that at type must implement.
It would be better implement as:
```
```
public interface ISomething

public class Something1 : ISomething
public class Something2 : ISomething
```
```
You do not gain anything in the form of code reusability or scalable design by creating multiple versions of the same interface.