iOS 应用开发过程中使用的设计模式

swiftserver side programmingprogramming更新于 2025/11/22 4:46:00

在本教程中,您将了解制作 iOS 应用时应遵循的一些常见设计模式。

什么是 Swift 设计模式?

在 Swift 中,设计模式使开发人员的开发过程变得简单。遵循设计模式可以创建高效的工作环境。 iOS 设计模式是一组用于创建应用程序的可重复方法。

iOS 开发中最常用的设计模式是什么?

  • Builder

  • Facade

  • MVC

  • Singleton

  • Viper

  • MVVM

  • Adaptor

  • Observer

  • Factory Method

让我们讨论其中的一些,以了解它们的工作原理 -

算法

步骤 1 - 为食物类别创建枚举。

步骤 2 - 创建用于存储食物和订购的基本模型项目。

步骤 3 − 创建一个模型,用于存储订单详细信息并计算订单价格。

步骤 4 − 创建一个构建器模型来创建和维护订单。

构建器

构建器模式也称为创建模式,它允许我们在 Swift 语言中创建对象。使用它,我们可以按照以下步骤创建复杂的对象。使用构建器模式的一个主要好处是您可以使用同一段代码来创建多个对象视图。

示例

import Foundation
enum FoodCategory: Int {
   case firstCourses, mainCourses, drinks
}
struct FoodItem {
   var name: String
   var price: Float
}
struct OrderItem {
   var food: FoodItem
   var count: Int
}
struct OrderDetail {
   var firstCourses: [OrderItem] = []
   var mainCourses: [OrderItem] = []
   var drinks: [OrderItem] = []
   // calculating total price of the order
   var price: Float {
      let items = firstCourses + mainCourses + drinks
      return items.reduce(Float(0), { $0 + $1.food.price * Float($1.count) })
   }
}
// Builder Pattern
class OrderBuilder {
   private var order: OrderDetail?
   func reset() {
      order = OrderDetail()
   }
   func setFirstCourse(_ food: FoodItem) {
      set(food, at: order?.firstCourses, withCategory: .firstCourses)
   }
   func setMainCourse(_ food: FoodItem) {
      set(food, at: order?.mainCourses, withCategory: .mainCourses)
   }
   func setDrink(_ food: FoodItem) {
      set(food, at: order?.drinks, withCategory: .drinks)
   }
   func getResult() -> OrderDetail? {
      return order ?? nil
   }
   private func set(_ food: FoodItem,
      at orderCategory: [OrderItem]?,
   withCategory foodCategory: FoodCategory) {
      guard let orderCategory = orderCategory else {
         return
      }
      var item: OrderItem! = orderCategory.filter( { $0.food.name == food.name } ).first
      guard item == nil else {
         item.count += 1
         return
      }
      item = OrderItem(food: food, count: 1)
      switch foodCategory {
         case .firstCourses:
            order?.firstCourses.append(item)
         case .mainCourses:
            order?.mainCourses.append(item)
         case .drinks:
            order?.drinks.append(item)
      }
   }
}
// Usage
let butterKulcha = FoodItem(name: "Butter Kulcha", price: 60)
let lassi = FoodItem(name: "Mango Lassi", price: 90)
let builder = OrderBuilder()
builder.reset()
builder.setMainCourse(butterKulcha)
builder.setDrink(lassi)
let order = builder.getResult()
print("Order Price: \(order?.price ?? 0.0)")

输出

Order Price: 150.0

Facade

要存储信息,您通常使用类。在这种情况下,您可以创建自己的类并将其他类对象包装在其中。使用 Facade 模式,您可以将系统逻辑分成不同的层。它可以帮助您通过多层轻松管理项目代码。

以 Facade 为例,可以帮助您将音频录制和播放集成到 iOS 应用中。使用 Facade,您可以隐藏文件系统。

MVC

MVC 也称为模型视图控制器。这是 iOS 开发中最流行的设计模式之一。Apple 还使用此设计模式制作了所有演示应用程序,我们可以在 Apple 文档中看到。使用 MVC 模式,您可以创建单独的层,例如用于业务逻辑的模型、用于用户界面的视图和用于控制用户流的控制器。

该机制的 3 个功能是

  • 模型用于存储业务逻辑和数据,并用于操作数据。通常,我们使用类或结构来存储信息。

  • 视图用于设计用户可以交互的用户界面。基本上,Swift 为不同用途提供了许多不同的视图组件。

  • 控制器用于控制模型和视图之间的数据流。它在这个设计模式中扮演着重要的角色。

什么时候应该为 iOS 应用使用 MVC 模式?

  • 您应该使用它来编写数据流和消息传递的代码。

  • 将代码写入适当的结构。

  • 加快开发过程。

  • 编写简单干净的代码。

  • 编写其他开发人员容易理解的代码。

单例

当您需要始终处理单个实例时,单例设计模式将为您提供帮助。使用它,您可以在整个应用程序生命周期中创建单个实例。

实际上,您应该避免使用单例模式,因为它可能会遇到一些问题。但有时,您需要使用单个对象与多个组件共享同一个实例。

何时应在 Swift 中使用单例模式?

  • 当程序中的类应该为所有客户端只有一个实例时

  • 当您需要严格控制全局变量时。

MVVM(模型-视图-视图模型)

这是 iOS 开发人员最喜欢的设计模式。MVVM 也称为模型视图视图模型。这种设计模式包括所有组件,如视图、模型、控制器、动画、多线程、数据库等。

此外,视图和模型之间的 ViewModel 层以规范的方式表示视图。因此,ViewModel 提供了一组接口,每个接口代表 UI 组件。

观察者

在 Swift 中,使用不同的多个对象,我们可以定义对象之间的一对一和一对多关系。例如,您想要观察对象中所做的更改,并在此基础上执行操作。在同样的情况下,观察者设计模式对于观察更改并执行进一步的操作非常有帮助。

在观察者设计模式中,主体和观察者是松散耦合的。

适配器

为了开发 iOS 设计模式应用程序,适配器设计模式根据客户端要求将类接口转换为另一个接口。

使用此适配器,类可以相互交互,同时将客户端与对象的类分开。

结论

在本文中,我们讨论了 iOS 开发中不同且最常用的设计模式。它们可用于不同的情况和要求。在开发 iOS 应用程序时,最重要的是正确遵循设计模式以编写干净安全的代码。

基本上,对于开发小型应用程序,您可以使用 MVC 设计模式。但对于大型应用程序,建议使用 MVVM 设计模式。



相关文章



关于我们 | 隐私条款 | 学习路线
返回顶部