iOS分层架构简介
在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的。
设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。面向对象设计模式通常以类或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类或对象。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。
软件架构设计与设计模式的作用类似,都是为了提高软件系统的“可复用性”和“可拓展性”,他们二者不同的地方在于,设计模式只是面对某一特定问题的策略,是面向局部的,而架构设计相对来说更加的宏观,更加的全面,它是有机的将这些设计模式组织起来解决整个应用系统的方案。
在软件架构设计中比较典型的一种就是分层架构设计,它采用层次划分方式,层次之间是松耦合的,层次内部是高内聚的。下图为iOS分层架构设计:
在上图中,简要列举了分层架构设计的各层的内容,以及各层的职责。本篇文章是利用工作空间框架来简单实现一下分层,以一个工程的创建为例子来进行说明。
工作空间框架实现
整个工程创建的步骤大致如下:
- 创建工作空间
- 创建表示层工程、数据持久层和业务逻辑层
- 建立依赖关系
- 代码实现
- 层内配置
创建工作空间
首先,创建一个文件夹,用来存放我们的工程,打开Xcode,在上方的菜单栏中选择File->New->Workspace,然后输入文件名及要保存的位置。
然后我们就会在刚才选择的文件夹下发现多了这么个东西:
创建表示层工程、数据持久层和业务逻辑层
- 创建表示层工程
打开Workspace,shift + command + N
创建新工程,选择singleView,输入PresentationLayer,回车,然后选择
点击create,就可以看见workspace中包含了一个project了
2.创建数据持久层及业务逻辑层
shift + command + N
创建新工程,选择
,输入BussinessLogicLayer,回车,然后选择
同理,创建数据持久层,建完后,workspace内情况如下
建立依赖关系
三个工程的依赖关系是:
- BusinessLogicLayer依赖于PersistenceLayer,
- PresentationLayer依赖于BusinessLogicLayer。
- BusinessLogicLayer和PersistenceLayer都是框架工程。
选择TARGETS->BussinessLogicLayer->Build Phases->Link Binary With Libraries,选择左下角的+按钮,选择PersistenceLayer.framework,再点击Add按钮,依赖关系就添加完成了。以此来将其他依赖创建完毕。
代码实现
PersistenceLayer中:
创建NoteDAO.swift作为基本数据处理类;
创建Note.swift作为基本类。
BusinessLogicLayer中
创建NoteBL.swift对数据处理进一步封装,实现业务逻辑。
PresentationLayer中
实现UI
详细代码请移步我的GitHub
层内配置
frameWork需要进行一定的配置,才能够被外部引用,首先,就是本身文件内的类和方法,如果想要被外部调用,需要声明时加上关键字public
,并在Header中将文件添加到Public中,选择设备,并编译,那么这个frameWork中的文件就能被外部的project访问了。