www.digitalmars.com         C & C++   DMDScript  
Archives

D Programming
digitalmars.D
digitalmars.D.bugs
digitalmars.D.dtl
digitalmars.D.ide
digitalmars.D.dwt
digitalmars.D.announce
digitalmars.D.learn
digitalmars.D.debugger
D.gnu
D

C/C++ Programming
c++
c++.announce
c++.atl
c++.beta
c++.chat
c++.command-line
c++.dos
c++.dos.16-bits
c++.dos.32-bits
c++.idde
c++.mfc
c++.rtl
c++.stl
c++.stl.hp
c++.stl.port
c++.stl.sgi
c++.stlsoft
c++.windows
c++.windows.16-bits
c++.windows.32-bits
c++.wxwindows

digitalmars.empire
digitalmars.DMDScript
electronics


digitalmars.D.learn - composing a class with template mixins

Recently I started moving all functionality within my larger classes to (10+)
templates.

abstract class AC : I 
{
mixin abstractConstructors!();

mixin abstractNamedInterfaceFunctionallity_1!(); //e.g. abstractEvents!()
mixin abstractNamedInterfaceFunctionallity_2!();
..
mixin abstractNamedInterfaceFunctionallity_x!();

}

class C : I 
{
mixin constructors!();

mixin namedInterfaceFunctionallity_1!(); //e.g. events!()
mixin namedInterfaceFunctionallity_2!();
..
mixin namedInterfaceFunctionallity_x!();
}

This way I can make these neat per-functionality-modules

--- module events;
template events(){
..
}

template abstractEvents(){
..
}
--

My question is this: What do you think of this approach to handling large
classes?
Horrible ? :)
Feb 06 2010