-
WPF和WinForm区别
WPF:分辨率自适应,属性binding,有事件路由、命令绑定、数据模板 数据模板等特性,前后分离,可创建样式动画,页面比 WinForm 更炫酷
WinForm:自适应差,label控件不可设置透明背景区别 WPF WinForm 句柄 整个窗口为一个句柄 窗口中每个控件都是一个句柄 渲染 使用DX渲染,硬件加速 GDI渲染 界面 MVVM绑定 需要修改代码 动画 Animated属性 通过代码实现 自适应 支持 不支持 复杂控件 属性依赖、触发器 代码实现 驱动方式 数据驱动 事件驱动 -
MVVM、MVC的概念
MVVM 是 Model-View-ViewModel 的简写,即模型-视图-视图模型,模型(Model)指的是后端传递的数据,视图(View)指的是所看到的页面UI,视图模型(ViewModel)是mvvm模式的核心,它是连接view和model的桥梁。VM实现了View和Model的自动同步,当Model改变时,View也相应改变。
优点:低耦合,可重用性强,试图逻辑放在VM中,被多个View重用;独立开发,使页面设计和业务逻辑解耦MVC是Model-View-Controller的简写。即模型-视图-控制器。M和V指的意思和MVVM中的M和V意思一样。C即Controller指的是页面业务逻辑,使用MVC的目的就是将M和V的代码分离。MVC是单向通信。也就是View跟Model,必须通过Controller来承上启下。
优点:代码耦合性低,生命周期成本低,可重用和维护性都较高。
缺点:不使用小型项目;大部分逻辑在控制层;试图对模型中数据的效率访问,一句Model的操作接口不同,可能多次调用才满足数据显示的需要 -
工厂模式
-
观察者模式
定义观察者和被观察者,当被观察者状态发生改变时,通知所有观察者。
优点: 1. 降低观察者与目标之间的耦合;
2. 目标与观察者之间建立了一套触发机制
3. 符合开闭原则
缺点:1. 目标与观察者之间的关系未完全解除
2. 当观察者过多时,通知会花费时间,降低效率 -
设计原则
开闭原则:对拓展开放,对修改关闭;为了拓展性好,利于维护和升级
里氏代换原则:基类可以出现的地方,子类一定可以出现
依赖倒转原则:针对接口编程,依赖于抽象而不是具体
接口隔离原则:使用多个隔离的接口,比使用单个接口要好,降低耦合,利于维护和升级
迪米特法则:知道最少原则,一个视图应该尽可能少的与其他实体之间发生作用,是系统功能模块相对独立
合成复用原则:尽可能使用合成/聚合的方式,而非继承 -
数据库设计原则
原子性:所有字段都是不可再分解的原子值
唯一性:每一列都和主键相关,而不能只与主键的某一部分相关(消除部分依赖)
独立性:每一列数据都和主键直接相关,而不能间接相关