import 'package:flutter/material.dart'; import 'package:mvc_pattern/mvc_pattern.dart'; /// Dependency Injection of 'the Controller' in the design pattern. import 'Controller.dart'; class MyHomePage extends StatefulWidget { MyHomePage({Key key}) : super(key: key); // Fields in a Widget subclass are always marked "final". static final String title = 'Flutter Demo Home Page'; @override _MyHomePageState createState() => new _MyHomePageState(); } class _MyHomePageState extends StateMVC { _MyHomePageState():super(Controller()){ _con = Controller.con; } Controller _con; @override @protected Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(MyHomePage.title), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Text( MyHomePage.title, ), Text( '${_con.displayThis}', style: Theme.of(context).textTheme.display1, ), ], ), ), floatingActionButton: FloatingActionButton( onPressed: () { setState(_con.whatever); }, tooltip: 'Increment', child: Icon(Icons.add), ), ); } }