MVVMCROSS通过实现模型视图 - 视图模型(MVVM)模式来促进跨平台应用程序中关注点的分离,该模型固有地促进了应用程序的不同组件之间的明确责任划分。 MVVMCross如何实现这一目标:
MVVM模式实现
MVVMCross围绕MVVM架构建造,该体系结构由三个主要组成部分组成:
- 模型:表示应用程序的数据和业务逻辑。它封装了独立于用户界面的数据结构和操作。
- 查看:处理用户界面和用户交互。它负责显示数据并从用户接收输入。
- ViewModel:充当模型和视图之间的中介。它揭示了视图可以结合到的数据和命令,从而有效地将视图与模型脱在一起。
通过保持这种分离,MVVMCross确保每个组件都专注于其特定角色而不会重叠责任。例如,该视图不应包含业务逻辑,并且ViewModel不应直接操纵UI元素。
##用于共享逻辑的便携式类库(PCL)
MVVMCross使用便携式类库(PCL)来容纳特定于平台服务的ViewModels,模型和接口。该PCL充当核心项目,其中包含共享的业务逻辑和数据库处理。通过将业务逻辑分为PCL,MVVMCross允许开发人员在不同平台(例如iOS,Android和Windows)上共享代码的很大一部分。这种方法不仅有助于代码重复使用,还可以确保业务逻辑在平台之间保持一致。
##数据绑定和通信
MVVMCross采用数据绑定到链接视图与其相应的视图模式。这种机制允许视图在更改时自动更新,反之亦然。数据绑定对于维持关注点的分离至关重要,因为它使视图能够对ViewModel的变化做出反应,而无需了解业务逻辑的实现细节。
此外,MVVMCross支持各种通信技术,例如命令和事件,通过允许视图在不直接访问其内部状态的情况下调用视图动作,从而进一步增强了关注点的分离。
##依赖注入和插件体系结构
MVVMCross结合了依赖项注入(DI)和插件体系结构,以管理依赖关系并扩展框架的功能。依赖注入有助于确保组件松散耦合,从而更容易测试和维护应用程序。该插件体系结构允许开发人员在不更改核心框架的情况下添加新功能,从而维持干净的关注点。
##生命周期管理
MVVMCross为ViewModels提供了生命周期管理功能,这些功能与视图的生命周期相关。这意味着当视图创建,出现,消失或破坏时,可以通知ViewModels。这样的生命周期管理有助于通过确保正确清理资源并正确管理ViewModel的状态,从而有助于保持清晰的关注点。
总而言之,MVVMCross通过使用PCL进行共享逻辑,实现数据绑定并结合依赖性注入和生命周期管理,从而促进了跨平台应用程序中关注点的分离。这些功能共同有助于强大,可维护和可扩展的应用架构。
引用:[1] https://www.linkedin.com/advice/0/what best-way-way-ensure-separation-concerns-mvvm-design-csign-csadc
[2] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[3] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[4] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phote-phote-build-mvvm-mvvm-apps-with-xamarin-and-mvvmcross
[5] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[6] https://www.mvvmcross.com/documentation/getting-started/getting-started
[7] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[8] https://stackoverflow.com/questions/32220007/what-does-mvvmcross-do-that-that-xamarin-doesnt-already
[9] https://github.com/mvvmcross/mvvmcross