# MVC 模式

Model-View-Controller(模型 - 视图 - 控制器)模式用于应用程序的分层开发。

  • Model(模型):模型代表一个存取数据的对象,在数据变化时更新控制器。
  • View(视图):视图代表模型包含的数据的可视化。
  • Controller(控制器):控制器作用于模型和视图上,使视图与模型分离开。它控制数据流向模型对象,并在数据变化时更新视图。

# 类图

img

# 代码

# 模型

namespace MVCPattern
{
    /// <summary>
    /// 模型
    /// </summary>
    public class Model
    {
        public string Name;
        public Model(string name)
        {
            Name = name;
        }
        /// <summary>
        /// 更改数据
        /// </summary>
        /// <param name="name"></param>
        public void SetName(string name)
        {
            Name = name;
        }
    }
}

# 视图

namespace MVCPattern
{
    /// <summary>
    /// 视图
    /// </summary>
    public class View
    {
        public void Show(Model model)
        {
            Console.WriteLine("Model: " + model.Name);
        }
    }
}

# 控制器

namespace MVCPattern
{
    /// <summary>
    /// 控制器
    /// </summary>
    public class Controller
    {
        private Model MyModel;
        private View MyView;
        public Controller(Model myModel, View myView)
        {
            MyModel = myModel;
            MyView = myView;
        }
        /// <summary>
        /// 更改数据
        /// </summary>
        /// <param name="name"></param>
        public void SetModelName(string name)
        {
            MyModel.SetName(name);
        }
        /// <summary>
        /// 更新视图
        /// </summary>
        public void UpdateView()
        {
            MyView.Show(MyModel);
        }
    }
}

# 测试

namespace MVCPattern
{
    public class Program
    {
        private static void Main()
        {
            Controller controller = new Controller(new Model("Model_0"), new View());
            controller.UpdateView();
            controller.SetModelName("Model_1");
            controller.UpdateView();
        }
    }
}

运行结果:
Model: Model_0
Model: Model_1

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Maikire 微信支付

微信支付

Maikire 支付宝

支付宝

Maikire 贝宝

贝宝