Каков хороший способ закрыть / освободить ресурсы, когда у нас нет деструкторов в Dart?
Например, возьмите класс базы данных:
class Database {
final String filename;
RandomAccessFile _file;
Database(this.filename) {
_file = File(filename).openSync();
}
// more reading, writing methods...
}
Мы обязательно должны позвонить _file.close()
где-нибудь, и для этого мы можем добавить метод в класс Database
. Кажется, это просто переключает проблему на другой класс, а не решает ее.
Думаю, я ищу здесь какую-то штуку c ++ RAII
-i sh, но без каких-либо методов очистки я может думать только о тривиальных короткоживущих объектах для поддержки чего-то подобного.