你有没有觉得写代码和做菜其实挺像的?比如你在厨房里准备一顿饭,得把食材处理好,该腌的腌,该切的切;然后开火烹饪,控制火候;最后摆盘上桌。这整个过程,其实就暗合了软件开发里一个经典模式——MVC。
Model 就像你的食材库
在厨房里,Model 相当于你冰箱里的食材和调料。它们是数据本身,比如你要做红烧肉,五花肉、酱油、糖这些就是你的“数据模型”。在代码里,Model 负责管理应用的数据和业务逻辑。
class MeatDishModel {
private String name;
private int cookTime;
public MeatDishModel(String name, int cookTime) {
this.name = name;
this.cookTime = cookTime;
}
public String getName() { return name; }
public int getCookTime() { return cookTime; }
}
View 是你的摆盘方式
同样的菜,用粗瓷碗装还是青花碟子端上去,感觉完全不同。View 就是负责展示的部分,它不关心怎么做出来的,只管怎么呈现给用户。
<div class="dish-view">
<h2>今日推荐:<span id="dish-name"></span></h2>
<p>烹饪时长:<span id="cook-time"></span> 分钟</p>
</div>
Controller 是掌勺的大厨
真正动手炒菜的是谁?是 Controller。它接收用户的操作,比如点了个“开始烹饪”,然后告诉 Model 去准备数据,再让 View 更新显示。
public class DishController {
private MeatDishModel model;
private DishView view;
public DishController(MeatDishModel model, DishView view) {
this.model = model;
this.view = view;
}
public void updateView() {
view.displayDish(model.getName(), model.getCookTime());
}
}
你看,就像厨房分工明确,洗菜的不管火候,摆盘的不碰锅铲,MVC 让代码也各司其职。改个界面颜色不用动计算逻辑,换种数据存储方式也不影响展示效果。下次写代码卡住了,不妨想想自己是不是在拿炒锅炖汤,工具用错了,再使劲也没用。