Easy way to implement interface properties?

Gary Willoughby dev at nomad.so
Wed Jan 1 06:30:46 PST 2014


On Wednesday, 1 January 2014 at 12:09:40 UTC, Jacob Carlborg 
wrote:
> On 2014-01-01 01:52, Frustrated wrote:
>> 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
>> }
>
> You can't use an abstract class?

Yes this is the ideal time to use an abstract base class and is 
what i would do.

The same thing *could* be achieved using mixin templates, with or 
without scopes but could lead to unmaintainable code. See the 
examples on mixin templates here: 
http://nomad.so/2013/07/templates-in-d-explained/


More information about the Digitalmars-d-learn mailing list