Easy way to implement interface properties?

Frustrated c1514843 at drdrb.com
Tue Dec 31 16:52:20 PST 2013


Is there an easy way to implement properties of an interface 
within a class instead of having to duplicate almost the exact 
same code with generic properties?

interface A
{
     @property int data();
     @property int data(int value);

}

class B : A
{
   @property int data() { return m_data; } // read property
   @property int data(int value) { return m_data = value; } // 
write property
}

lots of duplicate info, specially when there are a lot of 
properties, and changing anything in the interface requires 
changing it in the class.

Instead I'd like to do something like

class B : A
{
     ....

     implement!A;
}

where implement!A implements all the properties and functions in 
A that are not already defined in B using simple methods(just 
returning default values for functions and wrapping a field for 
properties).

This way I can design the structural aspect of the software 
without having to worry about implementation but still do some 
basic testing. I can also slowly build up the functionality of 
the code by implementing properties and functions without having 
to worry about an all or nothing approach(or having to worry 
about the original problem of code duplication).



More information about the Digitalmars-d-learn mailing list