unity面试的基础问题(1)

oop:面对对象

特点:

继承:在一个父类基础扩展子类的属性和行为,生成一个新子类。

多态:父类的指针指向子类而调用子类的方法

封装:细节性访问,对不可信信息进行隐藏。

 

装箱:将值变为引用类型

拆箱:将引用类型变为值类型

 

内存分类:

栈:先进后出 参数/new  值类型/申明变量

堆:new的引用类型分配在堆上 (还有ref和out结合起来可学习一下)

全局变量:static 静态 const 常量

代码区;编译的方法(基本用不着)

下面有个需要注意的小问题Button的事件最好在堆上开辟

 

进程 线程 协程的区别?

1,进程拥有自己独立的堆和栈。(既不共享堆,亦不共享栈,进程由操作系统调度)

2,线程拥有自己独立的栈和共享的堆。(共享堆,不共享栈,线程亦由操作系统调度(标准线程是的))(线程是在主线程里开辟的(和主线程不是并列关系,不能在同一时间启用同一资源))

3,协程和线程一样共享堆,不共享栈,协程由程序员在协程的代码里显示调度。(协程是在主线程里开辟的,不需要开锁)

一个应用程序一般对应一个进程,一个进程一般有一个主线程,还有若干个辅助线程,线程之间是平行运行的,在线程里面可以开启协程,让程序在特定的时间内运行。

协程和线程的区别是:协程避免了无意义的调度,由此可以提高性能,但也因此,程序员必须自己承担调度的责任,同时,协程也失去了标准线程使用多CPU的能力。
lock 一个锁(具体可细查)

 

 类的设计原则

1,单一原则:每一个类分工明确,就比如说动画就是动画。

2,开闭原则:对外扩展开放,对内修改关闭(属性)

3,依赖倒置原则:指的是抽象不应该依赖细节,细节应该依赖于抽象,也就是提出的“面向接口编程,而不是实现编程”

4,接口隔离原则:指的是多个单一接口比使用单一的总接口要好。

5,里氏替换原则:子类可以替换父类。

6,合成复用原则:就是在一个新对象里面已有的对象,使之成为新对象的一部分。

7,迪米特原则:也叫最少知识原则,尽量少引用别的类。

 

根据类的原则设计模版模块(上面👆提过一下)

1,工厂模块:new同类型的东西,比较多的时候用到。

2 ,单例模块:多用于工具类的单例适用于方法调用。

3,观察者模式:多个对象同时观察一个对象的动态(多播委托)。

4 ,组合模块:将散的东西集中到一块。

5,建造者模块:类似金字塔管理制度。

6,中介者模块:写一个基类定义,然后让其所有子类实现。

7,状态模式:允许对象在内部状态时,改变他的行为。

8,策略模式:定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。

 上面这是集中常用的设计模块具体可细研究

posted @ 2020-02-12 10:41  北特  阅读(661)  评论(0编辑  收藏  举报