返回
经典简化: 使用Javascript模拟MVC实现点餐程序
见解分享
2023-09-04 15:25:10
MVC模型简介
MVC(模型-视图-控制器)是一种设计模式,它将软件系统分为三个部分:模型、视图和控制器。
- 模型是应用程序的核心,它负责维护数据和应用程序逻辑。
- 视图负责显示数据并允许用户与应用程序进行交互。
- 控制器负责处理用户输入并将其传递给模型。
MVC模式的优点在于它提高了代码的可维护性和可复用性。
使用JavaScript模拟MVC实现点餐程序
现在,让我们开始使用JavaScript模拟MVC实现点餐程序。
1. 定义模型
首先,我们需要定义模型。模型负责维护数据和应用程序逻辑。在本例中,我们将使用一个简单的对象来表示模型。
var model = {
menuItems: [
{ id: 1, name: "Pizza", price: 10 },
{ id: 2, name: "Burger", price: 12 },
{ id: 3, name: "Salad", price: 8 }
],
orders: []
};
2. 定义视图
接下来,我们需要定义视图。视图负责显示数据并允许用户与应用程序进行交互。在本例中,我们将使用一个简单的HTML页面来表示视图。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>菜单</h1>
<ul>
<% for (var i = 0; i < model.menuItems.length; i++) { %>
<li><%= model.menuItems[i].name %> - <%= model.menuItems[i].price %></li>
<% } %>
</ul>
<h1>订单</h1>
<ul>
<% for (var i = 0; i < model.orders.length; i++) { %>
<li><%= model.orders[i].name %> - <%= model.orders[i].price %></li>
<% } %>
</ul>
<form>
<label for="item">菜品:</label>
<select id="item">
<% for (var i = 0; i < model.menuItems.length; i++) { %>
<option value="<%= model.menuItems[i].id %>"><%= model.menuItems[i].name %></option>
<% } %>
</select>
<label for="quantity">数量:</label>
<input type="number" id="quantity" value="1">
<input type="submit" value="添加">
</form>
</body>
</html>
3. 定义控制器
最后,我们需要定义控制器。控制器负责处理用户输入并将其传递给模型。在本例中,我们将使用一个简单的JavaScript函数来表示控制器。
function controller() {
// 获取用户输入
var item = document.getElementById("item").value;
var quantity = document.getElementById("quantity").value;
// 将用户输入添加到模型
model.orders.push({
id: item,
name: model.menuItems[item - 1].name,
price: model.menuItems[item - 1].price * quantity
});
// 更新视图
render();
}
function render() {
// 渲染视图
var html = "";
// 渲染菜单
html += "<h1>菜单</h1>";
html += "<ul>";
for (var i = 0; i < model.menuItems.length; i++) {
html += "<li>" + model.menuItems[i].name + " - " + model.menuItems[i].price + "</li>";
}
html += "</ul>";
// 渲染订单
html += "<h1>订单</h1>";
html += "<ul>";
for (var i = 0; i < model.orders.length; i++) {
html += "<li>" + model.orders[i].name + " - " + model.orders[i].price + "</li>";
}
html += "</ul>";
// 更新视图
document.getElementById("app").innerHTML = html;
}
// 添加事件监听器
document.getElementById("form").addEventListener("submit", controller);
// 渲染视图
render();
4. 运行程序
现在,我们可以运行程序了。只需将以下代码复制到一个文本文件中,并将其另存为“index.html”。然后,使用浏览器打开“index.html”文件即可。
<!DOCTYPE html>
<html>
<head>
<script src="script.js"></script>
</head>
<body>
<div id="app"></div>
</body>
</html>
总结
在本文中,我们学习了如何使用JavaScript模拟MVC实现点餐程序。这种设计模式可以帮助我们提高代码的可维护性和可复用性。我希望您能从本文中学到一些有用的东西。