设计模式只是解决某一特定问题的策略,是面向局部的。而一个架构设计是宏观地、全面地、有机地将这些设计模式组织起来解决整个应用系统的方案。衡量一个软件架构设计好坏的原则是:可复用性和可扩展性。因为可复用性和可扩展性强的软件系统能够满足用户不断变化的需求。为了能够使我们的软件系统具有可复用性和可扩展性,我主张采用分层架构设计,层(Layer)就是具有相似功能的类或组件的集合。例如,表示层就是在应用中负责与用户交互的类和组件的集合。 在讨论iOS平台上的应用分层设计之前,我们先讨论一下一个企业级系统是如何进行分层设计的。 10.1 低耦合企业级系统架构设计 首先,我们来了解一下企业级系统架构设计。软件设计的原则是提高软件系统的“可复用性”和“可扩展性”,系统架构设计采用层次划分方式,这些层次之间是松耦合的,层次内部是高内聚的。图10-1是通用低耦合的企业级系统架构图。 图10-1 通用低耦合的企业级系统架构图 表示层。用户与系统交互的组件集合。用户通过这一层向系统提交请求或发出指令,系统通过这一层接收用户请求或指令,待指令消化吸收后再调用下一层,接着将调用结果展现到这一层。表示层应该是轻薄的,不应该具有业务逻辑。 业务逻辑层。系统的核心业务处理层。负责接收表示层的指令和数据,待指令和数据消化吸收后,再进行组织业务逻辑的处理,并将结果返回给表示层。 数据持久层。数据持久层用于访问信息系统层,即访问数据库或文件操作的代码应该只能放到数据持久层中,而不能出现在其他层中。 信息系统层。系统的数据来源,可以是数据库、文件、遗留系统或者网络数据。 图10-1所示看起来像一个多层“蛋糕”,蛋糕师们在制作多层“蛋糕”的时候先做下层再做上层,最后做顶层。没有下层就没有上层,这叫做“上层依赖于下层”。信息系统层是最底层,它是所有层的基础,没有信息系统层就没有其他层。其次是数据持久层,没有数据持久层就没有业务逻辑层和表示层。再就是业务逻辑层,没有业务逻辑层就没有表示层,最后是表示层。也就是说,我们开发一个企业级系统的顺序应该是,先是信息系统层,其次是数据持久层,再次是业务逻辑层,最后是表示层。