如何在 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。