.Net 面试题总结

  1. WPF和WinForm区别
    WPF:分辨率自适应,属性binding,有事件路由、命令绑定、数据模板 数据模板等特性,前后分离,可创建样式动画,页面比 WinForm 更炫酷
    WinForm:自适应差,label控件不可设置透明背景

    区别 WPF WinForm
    句柄 整个窗口为一个句柄 窗口中每个控件都是一个句柄
    渲染 使用DX渲染,硬件加速 GDI渲染
    界面 MVVM绑定 需要修改代码
    动画 Animated属性 通过代码实现
    自适应 支持 不支持
    复杂控件 属性依赖、触发器 代码实现
    驱动方式 数据驱动 事件驱动
  2. 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的操作接口不同,可能多次调用才满足数据显示的需要

  3. 工厂模式

  4. 观察者模式
    定义观察者和被观察者,当被观察者状态发生改变时,通知所有观察者。
    优点: 1. 降低观察者与目标之间的耦合;
    2. 目标与观察者之间建立了一套触发机制
    3. 符合开闭原则
    缺点:1. 目标与观察者之间的关系未完全解除
    2. 当观察者过多时,通知会花费时间,降低效率

  5. 设计原则
    开闭原则:对拓展开放,对修改关闭;为了拓展性好,利于维护和升级
    里氏代换原则:基类可以出现的地方,子类一定可以出现
    依赖倒转原则:针对接口编程,依赖于抽象而不是具体
    接口隔离原则:使用多个隔离的接口,比使用单个接口要好,降低耦合,利于维护和升级
    迪米特法则:知道最少原则,一个视图应该尽可能少的与其他实体之间发生作用,是系统功能模块相对独立
    合成复用原则:尽可能使用合成/聚合的方式,而非继承

  6. 数据库设计原则
    原子性:所有字段都是不可再分解的原子值
    唯一性:每一列都和主键相关,而不能只与主键的某一部分相关(消除部分依赖)
    独立性:每一列数据都和主键直接相关,而不能间接相关

  7. WPF 中控件的基类是什么
    在 WPF 中,Visual 类是所有可视元素的基类。
    UIElement 类是所有可视元素的基类,它添加了布局、大小和位置等功能。
    FrameworkElement 类是所有框架元素的基类,它添加了资源、命令、模板等功能。
    Control 类是所有控件的基类,它添加了样式、数据绑定等功能。

posted @ 2024-03-12 23:02  叫夏洛啊  阅读(4)  评论(0编辑  收藏  举报