文件app.dart
import 'package:frontend/mobile.dart'
if (dart.library.html) 'package:frontend/web.dart';
abstract class App {
void init();
factory App() => getApp();
}
文件mobile.dart
import 'package:frontend/app.dart';
class MobileApp implements App {
@override
void init() {
print('mobile init');
}
}
App getApp() => MobileApp();
文件web.dart
import 'dart:html';
import 'package:frontend/app.dart';
class WebApp implements App {
@override
void init() {
print('web init');
}
}
App getApp() => WebApp();
main.dart
class _MyAppState extends State<MyApp> {
late App _app;
@override
void initState() {
super.initState();
_app = App();
_app.init();
}
}