iOS设计模式简介

简介:

开闭原则:

一个模块的修改,对拓展开放而对修改关闭。

举个例子:有一个类在项目中很多地方被使用了,但是由于需求,想对这个类进行拓展,这里可以使用继承拓展出子类,可以对子类进行修改,尽量不要修改原来的类。

里氏代换原则:

子类父类可以替换,子类可以使用父类所有的方法,父类可以使用子类所有的方法。

举个例子:有多个子类继承了父类,并且实现了父类的抽象方法(虽然OC中没有抽象方法或者是虚函数这个概念,但是父类方法不实现,就模拟了没有具体实现的抽象方法或者叫虚函数),在用父类创建实例的时候,声明可以用父类,创建实例可以用父类,也可以用其子类,这样,所调用的方法就会自动切换到相应的实例的方法。这个就是里氏代换原则,和面向对象的多态类似。

依赖倒转原则:

抽象不依赖于细节,细节依赖于抽象。(这个指的是接口)

举个例子:一个类的接口方法或者是继承得来的抽象方法,需要通过[self …]调用所在类的自己的具体的方法,这个方法是私有的方法,并不会对外开放的。在OC中,只要这个具体的方法没有写在.h文件中,就不会被外部使用,也可以降低看代码的干扰。如果把这个具体的方法写在.h文件中,也就是暴露出来了,这样会破坏封装性,而且会直接影响里氏代换原则的操作。而且如果某一个类继承这个类,又会造成额外的差异。我们尽量要做到,抽象的方法(比如这里是接口的方法)用具体实现的方法来实现,但是这个具体实现的方法不应该暴露出来,这就叫做抽象不依赖细节,细节依赖于抽象。

接口隔离原则:

一些接口尽量只做必要的事情,而不要做太多和这个接口无关的事情。严格遵守会让源码复用性很高。

举个例子:不要让接口做一些超出它范围的没用的事情。

合成/聚合复用:

如果从一个类扩展出另外一个方法,尽量不要使用继承,而是要使用组合。

举个例子:如果原来的一个类已经满足不了需求了,需要添加方法,一般来说,可以用继承,如果不到万不得已,最好不用这么做,其实可以将这个类当作一个组件在新建的一个类中来使用,然后这个新建的类,可以多建立几个满足需求的方法。在这里,新的类就相当于一个容器的作用。


相关文章
|
9月前
|
Linux Android开发 iOS开发
iOS 应用上架的步骤和工具简介
iOS 应用上架的步骤和工具简介
|
存储 iOS开发
iOS初级->const,static,extern简介
iOS初级->const,static,extern简介
103 0
|
设计模式 关系型数据库
【设计模式——学习笔记】设计模式简介+七大设计原则介绍(下)
【设计模式——学习笔记】设计模式简介+七大设计原则介绍
163 0
|
设计模式 测试技术 iOS开发
带你读《2022技术人的百宝黑皮书》——淘宝iOS扫一扫架构升级 - 设计模式的应用(1)
带你读《2022技术人的百宝黑皮书》——淘宝iOS扫一扫架构升级 - 设计模式的应用(1)
303 0
|
5月前
|
开发框架 数据可视化 Java
iOS开发-SwiftUI简介
iOS开发-SwiftUI简介
|
5月前
|
设计模式 Java 关系型数据库
设计模式——设计模式简介和七大原则
设计模式的目的和核心原则、单一职责原则、接口隔离原则、依赖倒转原则、里氏替换原则、开闭原则、迪米特法则、合成复用原则
|
6月前
|
设计模式
设计模式简介
设计模式简介
|
7月前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
95 6
|
8月前
|
设计模式 Java
【Java设计模式 - 专栏开篇简介】 java设计模式开篇
【Java设计模式 - 专栏开篇简介】 java设计模式开篇
52 0
|
设计模式 API iOS开发
带你读《2022技术人的百宝黑皮书》——淘宝iOS扫一扫架构升级 - 设计模式的应用(3)
带你读《2022技术人的百宝黑皮书》——淘宝iOS扫一扫架构升级 - 设计模式的应用(3)
474 0
带你读《2022技术人的百宝黑皮书》——淘宝iOS扫一扫架构升级 - 设计模式的应用(3)

热门文章

最新文章