美文网首页
重启面试之路 - 12.设计模式

重启面试之路 - 12.设计模式

作者: dxin_101 | 来源:发表于2021-11-04 15:35 被阅读0次

一、iOS有哪些常见的设计模式?

单例模式:单例保证了应用程序的生命周期内仅有一个该类的实例对象,而且易于外界访问.在ios sdk中,UIApplication, NSBundle, NSNotificationCenter, NSFileManager, NSUserDefault, NSURLCache等都是单例.

委托模式:委托Delegate是协议的一种,通过@protocol方式实现,常见的有tableView,textField等。

观察者模式:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。在iOS中,观察者模式的具体实现有两种: 通知机制(notification)和KVO机制(Key-value Observing)

二、单例会有什么弊端?

主要优点:

1、提供了对唯一实例的受控访问。

2、由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。

3、允许可变数目的实例。

主要缺点:

1、由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。

2、单例类的职责过重,在一定程度上违背了“单一职责原则”。

3、滥用单例将带来一些负面问题,如为了节省资源将数据库连接池对象设计为的单例类,可能会导致共享连接池对象的程序过多而出现连接池溢出;如果实例化的对象长时间不被利用,系统会认为是垃圾而被回收,这将导致对象状态的丢失。

三、编程中的六大设计原则?

1.单一职责原则

通俗地讲就是一个类只做一件事

CALayer:动画和视图的显示。

UIView:只负责事件传递、事件响应。

2.开闭原则

对修改关闭,对扩展开放。 要考虑到后续的扩展性,而不是在原有的基础上来回修改

3.接口隔离原则

使用多个专门的协议、而不是一个庞大臃肿的协议,如 UITableviewDelegate + UITableViewDataSource

4.依赖倒置原则

抽象不应该依赖于具体实现、具体实现可以依赖于抽象。 调用接口感觉不到内部是如何操作的

5.里氏替换原则

父类可以被子类无缝替换,且原有的功能不受任何影响 如:KVO

6.迪米特法则

一个对象应当对其他对象尽可能少的了解,实现高聚合、低耦合

相关文章

  • 重启面试之路 - 12.设计模式

    一、iOS有哪些常见的设计模式? 单例模式:单例保证了应用程序的生命周期内仅有一个该类的实例对象,而且易于外界访问...

  • 设计模式-组合模式(十二)

    结构型设计模式 12.组合模式 组合模式又称“整体-部分”设计模式,让整体与部分的使用具有一致性。 12.1创建抽...

  • 图解Java设计模式之设计模式面试题

    图解Java设计模式之设计模式面试题 1.1 Java设计模式内容介绍 1.1.1 先看几个经典的面试题 1.1....

  • 设计模式面试题目录

    更新时间 2017-2-14 设计模式大集锦 程序员面试全攻略 两道设计模式的面试题 20个设计模式和软件设计面试问题

  • 常见面试题之设计模式

    title: 常见面试题之设计模式 categories: [设计模式] tags: [面试题] date: 20...

  • iOS知识点(8)设计模式

    面试被问设计模式?不要怕看这里:工厂模式iOS 中的 21 种设计模式23种设计模式全解析真正的深入浅出“设计模式...

  • 设计模式-简介

    设计模式基本是面试必问的,当然,不是说学设计模式是为了应付面试,至少证明设计模式是很重要的一块知识点。 最近打算系...

  • 设计模式之合成模式

    @(架构之路之设计模式代码) 设计模式之合成模式 欢迎关注作者简书csdn传送门 [TOC]   合成模式属于对象...

  • 设计模式之命令模式

    @(架构之路之设计模式代码) 设计模式之命令模式 欢迎关注作者简书csdn传送门 [TOC] 介绍   命令模式属...

  • 2、创建型设计模式-单例设计模式

    江湖传言里的设计模式-单例设计模式 简介:什么是单例设计模式和应用 备注:面试重点考查 单例设计模式:这个是最简单...

网友评论

      本文标题:重启面试之路 - 12.设计模式

      本文链接:https://www.haomeiwen.com/subject/jthdiktx.html