WPF MVVM循序渐进
来源:http://www.tudoupe.com时间:2022-03-21
GLUE 代码问题的一个简单的三层建筑示例
第1步:MVVM最基本的例子:将后台代码转换到一个等级。
步骤2:插入二进制 - 删除后阶段代码
步骤 3 : 包括“ 明显改变的财产” 接口和执行操作 。
第4步:在ViewModel中,将执行活动分开。
第6阶段:实施第6号议定书
WPF MVVM视频演示
从儿童到成人,生活都发生了变化。 软件结构也是如此,它从基本设计开始,随着各种需要和情景的变化而演变。
NET 开发者, 如果你问他们中的任何人..什么是最微小的基础设施?第一件事是三层楼 在这个框架中,我们把该项目分为三个逻辑层面:UI层、数据层和数据层。有一个商业逻辑层和一个数据存取层。每一层都负责其本身的职能。
用户界面负责显示功能,业务逻辑水平负责验证,数据访问水平负责SQL报表。
包容性的变革:每一层面的变革不会在其他层面重复。
通过再利用提高效用。因为每一层都是不同的。独立自主实体MVVM是一个三级结构发展阶段。我知道,我所经历的 并不足以证明这一点。但是,我进行了我自己的进化 和观察MVVM。我们从三层楼开始吧为了理解三级建筑问题审查MVVM设计如何解决这些问题。升级以生成一个独特的 MVVM 框架代码 。本文件的路径计划如下。
GLUE 代码问题的一个简单的三层建筑示例
首先,我们将研究三层建筑 以及它存在的原因, 然后我们再研究MVVM是如何解决问题的。
直觉和现实不是一回事。当你看见一张三层的地图的时候,您最初的想法是,每个函数可能在不同级别上分布。然而,在写法典的时候,某些级别被迫从事他们不应从事的额外工作(从而破坏SOLID概念)。如果您对 SOLID 原则不熟悉, 请观看此视频: SOLID 原则视频。 Open-closed, Liskov substitution, Interface segregation and Dependency inversion,即单一功能、关闭概念、Ree的替换、接口隔离和依赖倒置)。
这部分额外努力由联合信息股和《示范公约》分担。此外,模型和数据存取也有所区别。这个代码被称为"Glue"这个项目是我们人权观察社特别报道的一部分。因此,GLUE编码已经扩大。GLUE 代码分为两个逻辑类别。
鄙人浅见薄识,如果您有任何额外的“ Glue” 实例, 请分享 。 请在留言中指出。地图逻辑(字符串逻辑):每一层通过属性、方法和汇总与其他层相连。例如,在 UI 层,有一个叫“ txtCustomer name” 的文本框控制 。它被映射到客户类的“ CustomerName” 字段。
我不确定, txtCustomer Name. 我不确定, 文本 = costobj. Custamer Name; // 地图代码
由谁来拥有上述具有约束力的逻辑代码、 UI 或模型? 该代码经常被开发者推到 UI 水平。
转换逻辑:每个级别使用单独的数据格式。例如,将具有性别属性的 " 人 " 示范类视为具有性别属性的 " 人 " 。对于womales和男人来说,理想的价值观分别是F和M。尽管如此,在UI层,要代表此值作为复选框控件,勾选则代表男性,不勾选则代表女性。下面是转换代码的例子。
大多数开发者最终会将 GLUE 代码添加到 UI 层 。这些代码一般可在后台代码中找到。例如: cs 文件 。如果用户界面是 XAML,XAML.cs 包含 GLUE 代码;如果 UI 是 ASPX, XAML.cs 包含 ASPX 代码。ASPX.cs包括GLUE代码。以此类推。
因此问题在于 UI 是否控制了这种 GLUE 代码 。 让我们看看 WPF 应用程序三层结构的简单例子, 以及更全面的 GLUE 代码 。
基本模型类“禁产”有三个属性:“禁产名称”、“上限”和“婚姻”如下所示。
但是,当此模型显示在 UI 上时, 它会显示以下内容。 正如您所看到的, 它包含模型的所有属性以及一些额外的元素: 颜色标签和已婚复选框控件 。
这是一张简单的桌子,左边是模型,右边是UI, 中间是描述的地图和转换逻辑。
正如你所看到的,前两条线只有绘图逻辑,没有转型逻辑,但其余两条线既包含转型逻辑,也包含绘图逻辑。
这些转换和映射逻辑程序 通常写在“xaml”里,在文件 cs.上图的后台代码如下所示。地图代码、颜色识别和性别格式转换代码都是可见的。我用代码中的注解表示的因此,你可以看到地图代码是什么。哪些是转换代码。
某些GLUE代码现在有问题:
单一责任原则遭到违反:UI是否控制了这些GLUE规则?由于这一假设情况,数额有所改变。还必须修改UI代码。现在,为什么改变数据需要改变UI的代码?这是可怕的代码的气味。UI唯一应该做的就是改变我的风格颜色和布局变化 。
重复使用: 如果我想对下面显示的编辑界面应用相同的颜色逻辑和性别格式, 我该怎么办? 我是否应该复制重复代码?
如果我想更进一步,我可以将这个GLUE代码用于几个UI技术系统,如MVC、Windows Forms或Mobile。
然而,由于每个平台的UI和其特定的UI技术系统密不可分,因此在这里重新使用UI技术平台几乎是困难的。
例如,以下背景代码是从Windows类别中继承下来的,该类别已纳入WPF UI系统,如果我们希望对网络应用程序或MVC应用同样的逻辑,我们就不能开发使用一类对象。
那么,我们如何重新获得后台代码?我们如何实施SRP原则?
相关新闻
- 2023-05-06 微pe怎么初始化U盘(微pe怎么恢复初
- 2023-05-06 Xp系统boot 进入pe(boot manager 怎么进入
- 2023-05-06 win pe修复bcdboot(pe修复系统)
- 2023-05-06 win7更新失败 pe(win7更新失败还原更
- 2023-05-06 u盘装了pe读取不了(u盘能进pe读取不
- 2023-05-06 u盘pe 发热(u盘发热烫手)
- 2023-05-06 u盘pe下看不到硬盘(u盘启动pe看不到
- 2023-05-06 pe盘 ntfs(u盘ntfs格式)
- 2023-05-06 sony笔记本进入pe模式(联想笔记本怎
- 2023-05-06 pe启动盘进不去(pe启动盘进不去系统
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
