【4】IOS面试题--设计模型

【4】IOS面试题--设计模型

ID:41559927

大小:65.64 KB

页数:9页

时间:2019-08-27

【4】IOS面试题--设计模型_第1页
【4】IOS面试题--设计模型_第2页
【4】IOS面试题--设计模型_第3页
【4】IOS面试题--设计模型_第4页
【4】IOS面试题--设计模型_第5页
资源描述:

《【4】IOS面试题--设计模型》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1.解释一下面向对象?面向对象是一种程序设计的范型,同时也是一种程序开发的方法。面向对象是将现实世界中的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模。面向对象更利于人的理解方式,对复杂的系统进行分析、设计与编程。此外,面向对象能有效的提高编程的效率,通过封装技术、消息机制可以快速的搭建出一个系统。面向对象主要内容:对象、类、方法。面向对象的语言是高级的语言,比如java、C++、c#、0C等面向对象的三大特性?面向对象的三大特性:继承、封装、多态。继承:子类自动共享父类非私有数据结构和方法的机制,是

2、类之间的一种关系。继承是面向对象语言特有的,面向过程的语言不具有继承特性。Objective-C是单继承。继承提供了类的规范等级结构,使公共的特性能够共享,提高了软件的重用性。类的继承性使所建的软件具有开发性、可扩充性,简化了对象、类的创建工作量,提高了代码的重用性。封装:在面向对象的语言中,对象、类、方法都是一种封装。对象是封装的最基本单位。类的封装体现在每个类都有.h和.m两个文件,将定义与实现分开,内部的实现可以根据需要设置不同的作用域对信息提供保护。.h头文件中放方法的声明(用户可见的外部接口),.m中方法的实现(用户不可见内部实现

3、)。方法的封装是最常见的,每个方法中封装了一个小的功能,这是单一职责的很好体现。当然,我们使用的第三方框架和代码,也是一种封装。封装可以使程序的结构更加清晰,将实现的信息封装隐藏,用的时候直接调用封装好的方法或者类,提高效率。此外,可以减少程序间的相互依赖。(修改代码的时候,只需要找到实现的方法修改,方法的调用等不需要修改)多态:用父类指针指向子类的对象。通过不同的对象调用相同的名称的方法,却产生不同的结果。通过父类指针得到的几个对象,都调用了父类中某个方法,但实际上在运行的时候,是执行的自己真实类中的方法。多态增强了软件的灵活性和重用性。

4、1.MVC模式MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写。MVC是一中非常古老的设计模式,通过数据模型,控制器逻辑,视图展示将应用程序进行逻辑划分。优势:使系统层次清晰,职责分明,易于维护敏捷原则:对扩展开放-对修改封闭开放封闭原则是面向对象原则的核心,思想为:软件实体应该是可扩展的,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。1.对扩展开放,意味着有新的需求变化时,可以对现有的代码进行扩展,以适应新的情况。2.对修改封闭,意味着一旦设计完成

5、,就可以独立完成其工作,而不要对类有任何的修改。实例:model-即数据模型,view-视图展示,controller进行UI展现和数据交互的逻辑控制。model与view之间是不能直接通信!模型-视图-控制器模式。MVC是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码。MVC分层有助于管理复杂的应用程序。MVC模式的应用程序耦合性很低,重用性很高,适合多人共同开发的大型项目。MVC就是用控制器把model与view隔开,也就是model与view之间没有任何交互,是控制器与modek控制器与view之间交互。model

6、用于封装了应用程序的数据,并定义操控和处理该数据的逻辑和运算。view是用户能够看到所有的界面上的viewocontroller是在应用程序的一个或多个视图对象和一^或多个模型对象之间,充当媒介。MVC缺点没有明确的定义,分层的时候,有些需要好好考虑。不适合小型项目,因为创建MVC需要花费一定的时间;并且分层之后,会增加结构的复杂性,可能产生过多新的操作,降低运行效率。视图与控制器之间紧密联系,会妨碍他们独立重用;因为视图与模型之间不能直接交互,因此需要多次调用控制器交互,这样视图与模型数据的访问效率比较低。3•单例模式Singleton单

7、例设计模式是IOS开发中一种很重要很常用的一种设计模式。确保程序运行期某个类,只有一份实例,用于进行资源共享控制。也就是,无论请求多少次,始终返回一个实例,也就是一个类只有一个实例。优势:使用简单,延时求值,易于跨模块敏捷原则:单一职责原则(单一功能原则)实例:NSUserDefaults[UlApplicationsharedApplication]等注意事项:确保使用者只能通过getlnstance方法才能获得,单例类的唯一实例。单例代码:单例的仓9建分Non-ARC(非ARC)和ARC+GCD,后者现在用的比较广泛,它保证了线程的安全

8、,满足了静态分析器的要求,还兼容了ARC,代码如下:+(AccountManager*)sharedManagerstaticAccountManager*sharedAccou

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。