代码之家  ›  专栏  ›  技术社区  ›  Emanoel Aleixo

关于使用GetX的Flutter MVVM体系结构

  •  0
  • Emanoel Aleixo  · 技术社区  · 1 年前

    我的结构如下:

    • ReportPageview

    • ReportController

    • ReportService ....

    我的问题是关于控制器。 我的代码太长了,因为里面有很多不同的项目。 所以,我的屏幕已经分离了组件,但我很困惑如何使用我的控制器。

    我做了什么:

    我创建了其他控制器来执行逻辑,例如:

    • ReportAgeController(该控制器将执行年龄部分的所有逻辑,如按年龄范围计数项目)
    • ReportGenderController(该控制器将执行性别部分的所有逻辑,如按性别计数项目)

    因此,在我的ReportController中有:

    class ReportController extends GetxController { 
        late ReportService _reportService;
    
        late AgeController ageController; 
        late GenderController genderController;
    
        onInit(){ 
            _reportService = Get.find<ReportService>(); 
            ageController = ageController(); 
            genderController = genderController(reportService: _reportService); 
        }
    
        onReady(){ 
            _getItems(); 
            _generateReport();
        } 
    
        _getItems(){
            items = _reportservice.getItems();
        }
    
        List items = [];
    
        _generateReport() { 
            for (var item in items) {      
                ageController.setAgeRange(item);       
                genderController.setGenderRange(item);   
            } 
            update();
        }
        ... another logic here
    } 
    

    在这种情况下,我可以调用以下过滤项

    Text("Male count ${controller.genderController.all.toString()}");
    

    我的问题是:AgeController和GenderController不是一项服务,但我不知道是否也可以称它们为Controller。

    一个怎样才能调用这些类,怎样才能成为我的结构?

    我改变后的实际结构是:

    • 报告Pageview.dart

    • ReportController.dart

    • 项目控制器(文件夹)

      • AgeController.dart

      • GenderController.dart

    • ReportService.dart

    0 回复  |  直到 1 年前