好吧,我不同意你想做的事情会提高可读性。如果要拆分接口和实现,我认为以下方法要好得多:
abstract class MyClass {
//Public methods:
int getFoo();
factory MyClass() => _MyClass();
}
class _MyClass implements MyClass {
//Private variables:
int _foo = 0;
//Private methods:
void _incrementFoo() => _foo++;
//Public methods implementation:
int getFoo() => _foo;
}
如果你真的想以你的方式去做,你需要有一种方法告诉你他们是你班级的一部分。你可以这样做:
class MyClass {
//Private variables:
int _foo = 0;
//Private methods:
void _incrementFoo() => _incrementFooImpl(this);
//Public methods:
int getFoo() => getFooImpl(this);
}
void _incrementFooImpl(MyClass myClass) {
myClass._foo++;
}
int getFooImpl(MyClass myClass) {
myClass._incrementFoo();
return myClass._foo--;
}
但我认为这相当难看,并且您最终会在代码中添加许多全局方法,这会使您很难看到每个方法属于哪个类。