Swift World:设计模式-简单工厂

如果我们想学习一种编程语言,我们需要忍受它。 这意味着尽可能多地使用Swift。 今天,我们将开始讨论Swift中的设计模式。 除了简单的解释之外,我们还尝试提供图形,样本,用例等。让我们开始吧。

第一种模式是简单工厂。 简单地说,我们建立了一个工厂来生产属于同一类型的不同对象。 如下图和代码所示,我们有不同类型的汽车,轿车,SUV和面包车。 它们都符合协议Car。 这意味着该协议定义了汽车的通用接口。 特定的汽车类型会实现自己的逻辑。

 class Factory { 
static func produceCar (type: CarType ) -> Car {
switch type {
case . sedan:
return Sedan ()
case .SUV :
return SUV ()
}
}
}
 let sedan = Factory.produceCar (type: . sedan) 
sedan .drive ()
let suv = Factory.produceCar (type: .SUV )
suv .drive ()

显然,正是工厂创造了不同的汽车实例。 那我们要加面包车怎么办? 货车类别已定义。 因此,在这里我们需要更改工厂以使其能够生产面包车。

 class Factory { 
static func produceCar (type: CarType ) -> Car {
switch type {
case . sedan:
return Sedan ()
case .SUV :
return SUV ()
case . van
return Van ()
}
}
}
 let sedan = Factory.produceCar (type: . sedan) 
sedan .drive ()
let suv = Factory.produceCar (type: .SUV )
suv .drive ()
let van = Factory.produceCar (type: . van)
van .drive ()

这就是所有简单的工厂模式所做的。 但是为什么我们需要这种模式? 它将创建与使用分开,并将职责移至特定角色。 或以专业术语讲,这有助于松散耦合。 假设轿车的初始化逻辑一天更改一次。 我们不需要更改整个项目中的每个创作。 要做的就是改变工厂的逻辑。

在本系列的下一个博客中,我们将讨论工厂方法模式。

这里是所有模式的完整集合。

Swift中的设计模式集合
我发现很多人通过搜索引擎访问了我在Swift中有关设计模式的文章。 所以我把它们收集在… medium.com