设计模式
设计模式简介
1."设计模式"这样的话题似乎快被园子里的兄弟们写透了, 从简单的工厂到 MVC, MVP. 而关于MVVM似乎谈论得相对少些, 今天简单地说说.在阅读以下内容以前,建议你对这些内容有所了解: WPF, MVC, MVP, MVVM. 关于MVVM语法层面的内容请参考这里: http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
2.无论是MVC,MVP还是MVVM其主要的思想,就是在软件设计开发过程中提高代码的利用率,同时在软件设计中可以让更多的人加入到软件开发的队伍中,使的团队开发效率大大的提升。基于这种情况下WPF采用mvvm 的设计思路。
如何使用 MVVM in C#
MVVM 是区别去之前的MVC方式,我个人感觉是他的一个升级
Model <---------> modelView <-------> View
解释了将界面和模型分离的思想,这种思想的好处就是可以将界面和控制分开
我试用的是communitytool 比较了一下这个是轻量级的工具适合使用,下载方式的话可以自己去neget上下载使用。
我其实一开始也不明白,但是当我使多了之后我发想相当好,这种思想。
//例子,写了一个student的class但是这个只是单纯的后台的class
namespace Demo
{
public class student
{
private int id;
private string name;
private int age;
public int Id
{
get { return id; }
set { id = value; }
}
}
}
---------------------------------------------------上述代码只能编写后台代码,但是要想和前台界面交互这种方法是不行的-----------------------------------------------------------------------------------------------
后来进化了可以更新前台的界面
如果采用WPF的那一套那麻烦了,必须要继承自inotifypropertychanged ,还要实现里面的方法好&接口,但是使用CommunityToolkit.Mvvm这种方法就避免了这种方法。最主要的原因是使用继承自observableObject这个基类
namespace Demo
{
public class student:observableObject 这个是必须要继承的 ,这是前提!!!!!!
{
private int id;
private string name;
private int age;
public int Id
{
get { return id; }
set { id = value; }
}
}
}
实现双向更新,这个在实际使用中非常有用
[ObservableProperty]
private int id = 10; ======>这样可以实现数据和界面的双向更新,注意的是这里面的id必须是要小写,遵循小写原则。
这样的好处就是不需要繁琐的操作。
这样有不好的地方:
[ObservableProperty]
private int id = 10; 这个是写死的有时候当这个值改变之后还需要去操作其他属性这时候就麻烦了。
[MVVM面向切面编程]
上述等价于下面的操作。
private int id;
public int Id //这种情况是可以操作id的方法。
{
get { return id; }
set { id = value; }
}
1.那么有个问题什么叫 面向切面编程