• Prism框架


    序言

    做项目是提升个人能力最快的方式。

    为什么要使用Prism框架?

    Prism的出现正是出于构建一个:可重复利用的、可扩展的、灵活的、可以团队开发的、高质量的应用程序提供了一个很好的解决方案。

    Prism框架中一些非常重要的概念

    1、Prism思想是模块化编程,我将主界面拆分为四个模块(A、B、C、D)。

    2、模块之间不能互相引用,也就是解耦了。

    MVVM

    说起这个MVVM模型,就不得不说MVC框架。

    将整个前端页面分成View,Controller,Modal,视图上发生变化,通过Controller(控件)将响应传入到Model(数据源),由数据源改变View上面的数据。

    整个过程看起来是行云流水,业务逻辑放在Model当中,页面渲染逻辑放在View当中,但在实际运用上却存在一个问题:那就是MVC框架允许View和Model直接进行通信!!

    换句话说,View和Model之间随着业务量的不断庞大,会出现蜘蛛网一样难以处理的依赖关系,完全背离了开发所应该遵循的“开放封闭原则”。

    MVVM(Model–View–Viewmodel)是一种软件架构模式。

    简单的讲,MVVM是MVC的改进版。我们都知道MVC软件架构模式是苹果推荐的开发模式。

    MVC中的M就是单纯的从网络获取回来的数据模型,V指的我们的视图界面,而C就是我们的ViewController。

    在其中,ViewController负责View和Model之间调度,View发生交互事件会通过target-action或者delegate方式回调给ViewController,与此同时ViewController还要承担把Model通过KVO、Notification方式传来的数据传输给View用于展示的责任。随着业务越来越复杂,视图交互越复杂,导致Controller越来越臃肿,负重前行。脏活累活都它干了,到头来还一点不讨好。福报修多了的结果就是,不行了就重构你,重构不了就换掉你。

    来一张斯坦福老头经典的MVC架构图。

    所以为了解决这个问题,MVVM就闪亮登场了。他把View和Contrller都放在了View层(相当于把Controller一部分逻辑抽离了出来),Model层依然是服务端返回的数据模型。而ViewModel充当了一个UI适配器的角色,也就是说View中每个UI元素都应该在ViewModel找到与之对应的属性。除此之外,从Controller抽离出来的与UI有关的逻辑都放在了ViewModel中,这样就减轻了Controller的负担。

    我简单的画了下MVVM的架构图。

    概念

    private DataGridViewModel ViewModel => DataContext as DataGridViewModel;

     Mode=OneWay

    1.OneTime:一次绑定,在绑定创建时使用源数据更新目标,适用于只显示数据而不进行数据的更新。

    2.OneWay:单向绑定,在绑定创建时或者源数据发生变化时更新到目标,适用于显示变化的数据。

    3.TwoWay:双向绑定,在任何时候都可以同时更新源数据和目标。

    public virtual void OnNavigatedTo(NavigatedToEventArgs e, Dictionary<string, object> viewModelState);

    public virtual void OnNavigatingFrom(NavigatingFromEventArgs e, Dictionary<string, object> viewModelState, bool suspending);

    使用Microsoft.Practices.Unity 依赖注入

    豆瓣小组

    官网

    资料

    https://www.jianshu.com/p/0ae3c0d830e5

    开源--豆瓣小组UWP

    豆瓣小组官网

  • 相关阅读:
    Windows10 + eclipse + JDK1.8 + Apache Maven 3.6.0 + dl4j深度学习环境配置
    vector,deque,list的区别和使用
    extern C的用法解析
    向jupyter notebook加入Anaconda3中已添加的虚拟环境kernel
    TensorFlow学习
    windows10+Python3.6+Anaconda3+tensorflow1.10.0配置和安装
    torchvision
    无oracle客户端仅用plsql连接远程oracle
    poj 3463 Sightseeing(次短路+条数统计)
    10.11 noip模拟试题
  • 原文地址:https://www.cnblogs.com/cnki/p/12534730.html
Copyright © 2020-2023  润新知