package com.kerisy.mod.base
interface BaseMod { auto getInstance(); } package com.kerisy.mod.a class A : BaseMod { A getInstance() { return (new A); } void hello() { // in A writeln("in A"); } } package com.kerisy.mod.b class B : BaseMod { B getInstance() { return (new B); } void hello() { // in B writeln("in B"); } } import std.stdio; import com.kerisy.mod.a; import com.kerisy.mod.b; int main(string[] argv) { string packageClass; packageClass packageClass = "mod.forum.controller.forum.A"; BaseMod modObje = cast(BaseMod)Object.factory(packageClass); auto a = modObj::getInstance(); Object.callMethod(a, "hello"); packageClass packageClass = "mod.forum.controller.forum.A"; BaseMod modObje = cast(BaseMod)Object.factory(packageClass); auto a = modObj::getInstance(); Object.callMethod(a, "hello"); return 0; }