设计模式
1.MVC模式,M,V,C分别代表什么?
MVC是model-view-controller的缩写,模型-视图-控制器 M是数操作数据逻辑的部分,V是显示的应用模型数据或交互界面,C是程序的视图和操作逻辑的协调者。
2.请描述你所了解的设计模式,并说明在你的项目中哪里使用过?
单例: 对象池,游戏管理器
抽象工厂,
状态:有限状态机,
桥接:有限状态机
策略:AI自动行为操控中每种操控算法的独例
3.请说出4中面向对象的设计原则,并分别简述它们的含义。
1)单一职责原则:一个类,最好只做一件事,只有一个引起它的变化。
2)开放-封闭原则:对于扩展是开放的,对于更改是封闭的。
3)里氏替换原则:子类必须能够替换其基类。
4)依赖倒置原则:设计应该依赖于抽象而不是具体实现。
5)接口隔离原则:使用多个小的专门的接口而不要使用一个大的总接口。
4.请写出C#中的单例模式
private static GameStart m_Instance = null; public static GameStart Instance { get { if (m_Instance == null) { m_Instance = new GameStart(); } return m_Instance; } }
5. 用过什么设计模式。工厂模式了解么
6.请给我设计一个状态机,完成一个简单的xxxx情景。
a.创建状态机对象。 b.初始化状态机信息和回调函数. c.切换状态通过执行事件实现。d.执行事件的条件判断 . e.执行回调函数
答:状态机并不是单纯的switch结构,如果你是新手,你说switch我可以容忍,如果你干了好些年2Dx,然后想自废武功搞U3d了,再说switch就直接pass了。可以去搜一下相关资料,水不是很深,但篇幅有限。大概意思就是,每个对象都维护自己的状态机,状态机的状态改变,靠状态触发器。所有的状态(不是状态机。。状态机是一个主管它负责调度各种状态,状态是各种。。。状态。。哎不可言传啊。。),都会重写begin,excute,end这三个函数,本来敲了一大堆。。发现说也说不清楚,大家自己去看看吧还是。毕竟这只提供一种面试方式而已。。
如何管理场景中的物体,给个范围能快速找出范围内物体。
7.给一个墙,如何实现从墙上挖一个矩形的门出来。
8.时间复杂度,空间复杂度是什么?怎么计算?
9.时间换空间,空间换时间,分别是什么?举个你用过这种思想的例子
10.如果设计Astar寻路导航系统,如何做,注意哪些点?