项目架构 - Touale Cula's Blog

一、单选题

1、MVC框架中,控制器层层用于( A )
A、处理逻辑相关 B、处理数据相关
C、处理界面相关 D、监听消息


1、MVC框架中,模型层用于( B )
A、处理逻辑相关 B、处理数据相关
C、处理界面相关 D、监听消息


2、MVC框架中,关于视图层描述正确的是( B )
A、视图层可以发送消息给模型层
B、视图层可以监听模型层的消息
C、控制器层无法直接引用视图层的界面元素
D、视图层的数据来源于控制器层


3、三层架构分为哪三层(A )
A、表示层-业务逻辑层-数据访问层 B、模型层-业务逻辑层-数据访问层
C、表示层-业务逻辑层-控制器层 D、控制器层-业务逻辑层-模型层


4、三层架构的业务逻辑层作用不包含( D )
A、逻辑判断与执行操作 B、接收表示层的用户指令后
C、实现三层之间的数据连接和指令传达 D、访问数据库


5、PureMVC框架中,与模型相关联的设计模式是(B )
A、中介者模式
B、代理模式
C、单例模式
D、外观模式


6、以下哪一项是属于PureMVC框架的缺点( D )
A、充分利用消息机制来解耦
B、View界面可以实现重用
C、Model数据可以实现重用
D、对于简单的功能都得创建对应的一系列脚本


7、对于观察者模式描述正确的是( B )
A、无法用于解耦 B、适用于一对多的关系
C、只需订阅,无需发布 D、观察者是唯一核心


8、用面向对象的编程语言开发软件,其中开放封闭原则体现在(D )
A、对封闭的模块进行开放
B、扩展与修改都是开放的
C、扩展是封闭的,而对修改是开放的
D、扩展是开放的,修改是封闭的


9、软件项目中的界面管理类,一般采用什么设计模式(A )
A、单例模式 B、命令模式
C、代理模式 D、策略模式


10、模块化开发的核心是(A )
A、封装模块与管理模块 B、组合模块与模块通信
C、模块之间的重用 D、模块的分解


二、填空题

1、观察者模式中,解决了一个对象状态改变给其他对象通知的问题,而且还考虑到 易用和低耦合,保证高度的协作。


2、外观模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口


3、Pure MVC是在基于模型、视图和控制器模式建立的一个轻量级的应用框架


4、MVC框架中控制器接受用户的输入并调用模型和视图去完成用户的需求。


5、三层架构的优点是高内聚与低耦合,可以降低层与层之间的依赖


三、判断题

1、对于IT项目采用哪种架构来开发,采用哪种设计模式来实现,要根据项目的实际需求来确定。 (对 )


2、MVC框架中视图层可以发送给模型层消息。 ( 错 )


3、三层架构的数据访问层一定是来源于本地数据库 ( 错 )


4、对于有服务器的联网项目,在设计数据通信模块需要考虑传输数据的加密,但不需要考虑数据的压缩。 ( 错 )


5、软件架构中的管理类一般都需要提供对外接口。 ( 对 )


6、外观模式实现了子系统与客户端之间的松耦合关系。 (对)


7、在PureMVC框架中利用中介者模式有效的隔离了View层与Controller和Model层的耦合。 (对)


8、软件架构中,配置表的实现也是重要的模块之一,配置表可以取代数据库。 (错 )


9、架构软件的时候,还需要考虑项目是否需要加入热更新,热更新功能是为了方便在不卸载的情况下,更新项目模块与增加新功能。 (对)


10、MVC框架是不能根据项目来修改的,是固定的开发模式。 ( 错 )


四、名词解释

1、软件项目框架

软件项目框架是为了实现某个业界标准或完成特定基本任务的软件组件的规则和规范;


2、高内聚低耦合
内聚是描述模块内的功能联系,耦合是软件结构中各模块之间相互连接的一种度量,高内聚低耦合可以使程序模块的可重用性、移植性大大增强。


3、序列化与反序列化

序列化是将对象的状态信息或属性转换成可以存储或传输的如字节形式的过程。

反序列化时将字节序列还原并恢复对象的状态信息或属性的过程。


4、热更新

热更新是一种软件开发者常用的更新方式。开发者通过动态下发代码,用户打开软件后即时更新。热更新可以在开发者不发布新版本的情况下,修复bug和发布功能,避免长时间的审核等待以及多次被拒造成的成本


五、简答题

1、请简述观察者模式的应用

观察者模式,也称发布订阅模式,是一种行为型的设计模式。当对象存在一对多的关系时,就可以使用观察者模式来定义对象的一对多的依赖关系;当一个对象的状态发生改变时,所有依赖以及他的对象都能得到通知并自动更新。


2、请简述三层架构中业务逻辑层的作用
业务逻辑层负责业务规则的制定、业务流程的实现等业务需求有关的系统设计;同时业务逻辑层处于数据访问层与表示层中间,接收来自表示层的数据请求,逻辑判断后,向数据访问层提交请求并传递最后的结果。


3、请简述三层架构中业务数据访问层的作用

数据访问层(Data Access Layer, DAL) 负责与数据库的交互,包括对数据库的查询、插入、删
除和更新等操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的映射,以及对象实体
的持久化


4、开发一款游戏软件,优先选择三层架构还是MVC架构

优先使用 MVC

  1. 三层架构可归于部署模式,而MVC模式可归于表示模式
  2. MVC模式基于页面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑
  3. 三层架构按层划分,降低了系统的性能,在需求更改的情况下容易导致自上而下的级联修改
  4. 游戏软件常常有高响应和界面交互变更需求,选择MVC更加利于项目研发进度推进

六、综合题

1、请画出MVC完整架构图并详细分析

Model

  • 业务处理:业务逻辑(Service)
  • 数据持久层:CRUD(Dao)

View

  • 展示数据
  • 提供链接发起Servlet请求

Controller

  • 接收用户的请求:(req:请求参数、Session信息)
  • 交给业务层处理对应的代码
  • 控制视图的跳转

2、用单例模式设计设计用户数据类,用户数据类需要有金币信息与相关的对外接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class CoinManage{
private static ConinManage instance;

public CoinManage GetInstance(){

if( instance== null)
instance = new CoinManage();
return instance;
}

public int CoinCount{get;private set;}
public void Add(int count){
CoinCount += count;
}

public bool Sub(iny count){
if(CoinCount < count)return false;
CoinCount -= count;
return true
}
}