如何在 class' 括号外定义 class 方法以提高可读性?
How can I define class methods OUTSIDE of the class' brackets to improve readability?
如何在 class' 括号外定义 class 方法以提高可读性?例如,类似这样的东西...
class MyClass {
//Private variables:
int _foo = 0;
//Private methods:
void _incrementFoo();
//Public methods:
int getFoo();
}
void _incrementFoo() {
_foo++;
}
int getFoo() {
_incrementFoo();
return _foo--;
}
如您所见,我想通过提供签名告诉 class 这些方法,然后我实际上会在 class 之外定义它们...任何方式这是飞镖?
嗯,我不同意你想做的事情会提高可读性。如果你想拆分接口和实现我觉得下面的好很多:
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。你可以这样做:
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--;
}
但我认为这很丑陋,您最终会在代码中添加大量全局方法,这会使您很难看出每个方法属于哪个 class。
如何在 class' 括号外定义 class 方法以提高可读性?例如,类似这样的东西...
class MyClass {
//Private variables:
int _foo = 0;
//Private methods:
void _incrementFoo();
//Public methods:
int getFoo();
}
void _incrementFoo() {
_foo++;
}
int getFoo() {
_incrementFoo();
return _foo--;
}
如您所见,我想通过提供签名告诉 class 这些方法,然后我实际上会在 class 之外定义它们...任何方式这是飞镖?
嗯,我不同意你想做的事情会提高可读性。如果你想拆分接口和实现我觉得下面的好很多:
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。你可以这样做:
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--;
}
但我认为这很丑陋,您最终会在代码中添加大量全局方法,这会使您很难看出每个方法属于哪个 class。