面试问题总结

学了一年多的语言还没有真正的搞清楚什么是面向过程什么是面向对象,今天整理一下,还希望大家可以提出自己的宝贵意见,谢谢。

第一大问题面向过程和面向对象的理解

向过程的概念:面向过程就是分析出我们完成一件事情所需要的步骤,然后用函数把这些步骤一步一步的实现,使用的时候在一步一步的按顺序的调用。就像是洗脸:第一步先将洗脸盆里接上水,第二步:是将毛巾放在盆里浸湿,第三步:将毛巾拧干,第四步:放在脸上进行擦拭。第五步:重复二、三、四步直至洗好。

面向对象:是把构成问题的事情分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个问题的步骤中的行为。

可以拿生活中的实例来理我们拿汽车举例:

面向过程:我们开车去某地首先我们要发动汽车—按照路线进行行驶——到达目的地——熄火下车 在面向过程的思想中我们关心的是完成这件事需要做的每一步操作,在这里发动汽车、按照路线行驶、到达目的地、熄火就是每一步操作。每一步操作形成一个函数,然后我们依次按顺序调用每一个函数

面向对象:我们只要关心汽车这个对象,而我们所执行的每一步操作都是汽车这个对象所具有的行为,而且对于这些行为的顺序没有强制的要求。

我在网上看到有人很形象的把面向过程和面向对象写的程序分别形容为蛋炒饭和盖浇饭。蛋炒饭入味均匀,吃起来香。但是如果我不想吃鸡蛋就要重新制作一份。但是盖浇饭是饭菜分离,不同口味的人只需要根据自己的喜好来选择喜欢吃的菜和饭。

引用大神的:

盖浇饭的好处就是“菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是“可维护性”比较好,“饭” 和“菜”的耦合度比较低。蛋炒饭将“蛋”“饭”搅和在一起,想换“蛋”“饭”中任何一种都很困难,耦合度很高,以至于“可维护性”比较差。软件工程追求的目标之一就是可维护性,可维护性主要表现在3个方面:可理解性、可测试性和可修改性。面向对象的好处之一就是显著的改善了软件系统的可维护性。

面向过程
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源,比如单片机、嵌入式开发、                Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 
缺点:没有面向对象易维护、易复用、易扩展

面向对象
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更          加灵活、更加易于维护 
缺点:性能比面向过程低

第二大问题Unity中Update和FixedUpdate的区别

Unity中,Update 和 FixedUpdate都是对象更新时被调用的函数,在每一帧都会调用的,但是区别在于两者的帧长度是不一样的。

1、Update 与当前平台的帧数相关,就是与机器性能有关,机器性能高,帧率就高,性能低,帧率就低;

2、FixedUpdate采用的真实时间间隔作为帧长,不受帧率影响。处理物理逻辑一般在FixedUpdate中处理。

但是Update是在每次渲染新的一帧的时候才会调用,也就是说,这个函数的更新频率和设备的性能有关以及被渲染的物体(可以认为是三角形的数量)。在性能好的机器上可能fps 30,差的可能小些。这会导致同一个游戏在不同的机器上效果不一致,有的快有的慢。因为Update的执行间隔不一样了。

FixedUpdate,是在固定的时间间隔执行,不受游戏帧率的影响


第三大问题对象池

http://www.manew.com/blog-55455-3957.html

第四大问题协程和线程的区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值