MVC要点:
1、MVC是复合模式,结合了观察者模式、策略模式和组合模式。
2、模型使用观察者模式,以便观察者更新,同时保持两者之间解耦。
3、控制器是视图的策略,视图可以使用不同的控制器实现,得到不同的行为。
例如,如果聊天在机器人端,我们使用语音控制器,可以处理语音输入。
在客户端,我们使用文字控制器,可以处理文字输入。
4、视图使用组合模式实现用户界面,用户界面通常组合了嵌套的组件,像面板、框架和按钮。
5、适配器模式用来将新的模型适配成已有的视图和控制器。
在我现在写的一个项目中:
View:包括机器人、网页(用于管理多媒体内容)、客户端。
Controller:WebSocket与View建立长连接,它会接受视图的请求handleTextMessage(),并转发给模型。处理结果是以JavaBean的形式打包。session.sendMessage(textMsg);
Model:处理 HttpServletRequest req.getAttribute("message")得到的消息,将其打包成JavaBean的形式进行处理,处理完后通知View更新视图。
问:控制器所做的事情就是把用户的输入从视图发送给模型,对不对?
答:不对,控制器做的事情不只有“发送给模型”,还会解读输入,并根据输入操作模型。并将视图传过来的信息JSON串打包成一个javaBean。传给Model。
问:为何不把这样的代码放到视图中?