В настоящее время я разрабатываю структуру классов для проекта, над которым я работаю. У меня есть метод, который использует одно состояние экземпляра. Я теперь не понимаю, что лучше сделать этот метод статическим и проанализировать это состояние экземпляра в качестве аргумента или просто привязать метод к экземпляру.Создает ли Дарт новые методы для каждого нового экземпляра?
Если производительность не была проблемой, я бы связал метод без каких-либо сомнений с экземпляром, потому что он намного чище. Но в моем случае производительность будет иметь решающее значение. Итак, имеет ли значение разницу в производительности, чтобы сделать метод статическим/нестатическим?
Если это не имеет значения, это будет верно и для сгенерированного javascript * .dart.js?
Редактировать: После прочтения моего собственного вопроса это не очень согласовано. Я попытаюсь сформулировать его снова, но яснее.
Этот код ...
class MyClass {
void foo() {}
}
void main() {
MyClass a = new MyClass();
MyClass b = new MyClass();
print(a.foo == b.foo);
}
... выходы ложны. Это заставляет меня думать, что для каждого нового экземпляра создается новый метод. Если это правда, это кажется мне пустой тратой памяти. Итак, каждый новый экземпляр создает копию всех связанных методов?
PS: Вопрос в основном такой же, как this question, но затем для Dart.
Я понятия не имею, о чем идет речь. Я думаю, было бы легче понять с помощью какого-то реального кода, который демонстрирует, что вы пытаетесь выполнить. Если производительность важна для вас, должно быть достаточно легко написать контрольный показатель и получить жесткие данные. –