unity工程师面试知识点之MVC架构+观察者模式

Wesley13
• 阅读 377

所谓设计模式通俗点理解就是解决固定问题的套路。而说起观察者模式又不得不提起客户端框架设计中最常用的实现逻辑:MVC架构+观察者模式。

MVC架构中的M、V、C分别是model、view、control的缩写。

model:模型,处理数据逻辑部分

view:界面,处理数据显示部分

control:控制器,模型和界面的沟通桥梁,负责从视图读取数据,控制用户输入,并向模型发送数据。

MVC架构是面向对象设计原则中“单一职责”的典型,将数据处理与界面实现完全剥离开来,大大降低了代码的耦合度,提高了代码的复用性。而这样做就产生了一个问题,如何能够有效的解决一旦数据层的数据发生变化就能及时通知到相应的主题界面。观察者模式作为一种传递消息的机制应用在MVC架构中就很好的弥补了这一不足。

观察者模式(Observer)也叫订阅——发布模式,定义了一种“一对多”的依赖关系,主要目的就是为了解决:当一个对象的状态发生改变时能及时通知给其他对象。具体关系如图所示:

unity工程师面试知识点之MVC架构+观察者模式

举个例子来说明,出版杂志的杂志社就是主题(发布者),订杂志的客户就为订阅者,客户从杂志社订阅杂志(订阅主题)后,客户都会收到杂志社寄来的最新一期杂志。如果客户不想订阅了,可以取消,以后就不会再收到杂志。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
浩浩 浩浩
3年前
面试问到烂的MVC、MVP以及MVVM
MVP什么是MVP?在了解MVP之前可以先观察MVC的架构模式。MVC中三个组成部分:1.View,即视图中的各个控件;2.Controller
Wesley13 Wesley13
3年前
Qt mvc学习一
 mvc是经典的三层结构,将数据,视图和逻辑分离。Qt中的Model/View框架,实现了这个模式。在Qt中这个模式设计到三个类,model类,view类和delegate类。model类保存数据,view复制显示,而delegate负责协调model和view之间的数据edit(编辑)和render(渲染)。这些在model子类中需要实现的方法可以分为
Stella981 Stella981
3年前
ASP.NET MVC 5
MVC代表:_模型__\__视图__\__控制器_。MVC是一个架构良好并且易于测试和易于维护的开发模式。基于MVC模式的应用程序包含:·Models:表示该应用程序的数据并使用验证逻辑来强制实施业务规则的数据类。·Views:应用程序动态生成HTML所使用的模板文件。·Controllers:
Stella981 Stella981
3年前
Guava中的EventBus
其实代码中经常会遇到跟主流程分支出去的异步逻辑,比如说:爬虫处理逻辑中,进行心跳打点,订单处理中,需要触发用户的个人信息变更等。这个时候就应该使用观察者模式。EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建
Stella981 Stella981
3年前
PHP入门教程之手把手编写自己的PHP MVC框架
1什么是MVCMVC模式(ModelViewController)是软件工程中的一种软件架构模式。MVC把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。PHP中MVC模式也称WebMVC,从上世纪70年代进化而来。MVC的目的是实现一种动态的程序设计,便于后续对程序的修改和扩展简化,并
Stella981 Stella981
3年前
Django框架介绍
 Django框架简介MVC框架和MTV框架(了解即可)MVC,全名是ModelViewController,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),具有耦合性低、重用性高、生命周期成本低等优点。
Wesley13 Wesley13
3年前
热门前沿知识相关面试问题
MVC【最常用】:MVC的定义:M:业务逻辑处理。【业务MODEL】V:处理数据显示的部分。【如xml布局文件】C:Activity处理用户交互的问题。【也就是Activity在MVC中扮演着C的角色】MVC的特点:①、耦合性低。②、可扩展性好
Wesley13 Wesley13
3年前
00_设计模式之语言选择
设计模式之语言选择设计模式简介背景设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式(Designpattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的