MVC 应用程序学习笔记

什么是MVC?

MVC是一种软件设计模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。 模型表示应用程序的核心(比如数据、数据库操作、业务逻辑等),视图负责展示数据,控制器则负责处理用户交互,并操作模型和视图。MVC模式使得代码易于维护和拓展。

如何在应用程序中实现MVC?

模型层实现

模型层通常包含数据存储和业务逻辑。例如,在一个购物网站上,模型可能包含产品信息、订单、顾客信息等。在这个例子中,使用MySQL数据库来保存数据。以下是模型层的示例代码:

Copy Code
// 数据库连接配置 const dbConfig = { host: 'localhost', user: 'root', password: 'password', database: 'shopping' }; // 创建数据库连接池 const pool = mysql.createPool(dbConfig); // 查询所有商品 function getAllProducts(callback) { pool.query('SELECT * FROM products', (error, results, fields) => { if (error) throw error; callback(results); }); } // 添加订单 function addOrder(order, callback) { pool.query('INSERT INTO orders SET ?', order, (error, results, fields) => { if (error) throw error; callback(results.insertId); }); }

视图层实现

视图层负责展示模型层的数据。在我们的购物网站上,我们可以有很多视图展示不同的数据,例如产品列表、购物车、订单页面等等。以下是视图层的示例代码:

Copy Code
<html> <head> <title>My Shopping Site</title> </head> <body> <h1>My Shopping Site</h1> <ul> <% for (let i = 0; i < products.length; i++) { %> <li><%= products[i].name %> - $<%= products[i].price %></li> <% } %> </ul> </body> </html>

控制器层实现

控制器负责处理用户交互并将请求发送到模型和视图层。 在购物网站的例子中,当用户添加商品到购物车时,控制器负责从模型层获取商品信息并将其展示在视图层中。以下是控制器的示例代码:

Copy Code
// 添加商品到购物车 app.post('/cart/add', (req, res) => { const productId = req.body.productId; // 查询商品信息 getProductById(productId, product => { // 将商品添加到购物车 cart.addProduct(product); // 重定向到购物车页面 res.redirect('/cart'); }); });

如何使用MVC模式拓展应用程序?

MVC模式使得应用程序易于拓展和维护。例如,在购物网站上,我们可以轻松地添加新的视图来展示订单历史记录,或者添加对新的付款方式的支持。同时,我们可以根据需要添加新的模型和控制器来处理新的业务逻辑。

总结

MVC模式将应用程序分为三个主要部分:模型、视图和控制器。模型层包含数据存储和业务逻辑,视图层负责展示数据,控制器层负责处理用户交互并操作模型和视图。MVC模式使得应用程序易于拓展和维护。