Interface file
Jan Johansson via Digitalmars-d
digitalmars-d at puremagic.com
Wed Sep 30 18:28:20 PDT 2015
On Wednesday, 30 September 2015 at 19:17:41 UTC, Steven
Schveighoffer wrote:
> On 9/30/15 2:12 PM, Jan Johansson wrote:
>
>> [...]
>
> There is no reason to use interfaces here, you can separate
> declaration from implementation without them:
>
> test.di:
>
> module test;
> class MyTest {
> void Write(string message);
> }
>
> test.d:
>
> module test;
>
> class MyTest {
> void Write(string message) {
> writeln(message);
> }
> }
>
>
> main.d:
>
> import test; // will work even if only test.di is available
> import std.stdio;
>
> void main() {
> auto p = new MyTest;
> p.Write("Hello, World!");
> }
>
> Interfaces are only necessary when you are unsure what concrete
> type you need until runtime.
>
> -Steve
Thanks Steve,
Your last statement is exactly what I want to do! Using contract
based design, and factories to instantiate types that implements
the interface.
//Jan
More information about the Digitalmars-d
mailing list