类簇

作者: fordring2008 | 来源:发表于2017-02-05 12:25 被阅读10次

// 类簇

// 在 OC 中, init开头的初始化方法所做的和其他方法并没有很大不同,只是将 self 进行了替换,即根据传入的参数返回 适合的私有子类对象 即可。

// Swift 中的初始化方法 init 才是真正的初始化,我们只能得到当前类的实例,并且要完成所有配置(对所有属性进行初始化, 当然 Optional 和有默认值的属性不用).

// 也就是说,对一个公共类来说,是不可能再初始化方法中返回子类的信息的

// 对于 Swift 中类簇的构建,一种有效的方法就是使用工厂方法进行。即不通过 init:返回子类对象

class Drinking {

typealias LiguidColor = UIColor

var color : LiguidColor {

return .clear

}

class func drinking(name: String) -> Drinking {

var drinking : Drinking

switch name {

case "Coke":

drinking = Coke()

default:

drinking = Beer()

}

return drinking

}

}

class Coke: Drinking {

override var color: LiguidColor{

return .black

}

}

class Beer: Drinking {

override var color: LiguidColor {

return .yellow

}

}

let coke = Drinking.drinking(name: "Coke")

print(coke.color)

let beer = Drinking.drinking(name:"Beer")

print(beer.color)

let cokeClass = NSStringFromClass(type(of: coke))

print(cokeClass)

let beerClass = NSStringFromClass(type(of: beer))

print(beerClass)

相关文章

  • 类簇

    类簇(Class Clusters)是抽象工厂模式在iOS下的一种实现,Function中,很多常用类,如NSSt...

  • 类簇

    类簇在iOS中是一种非常实用的模式,例如:NSArray, NSDictionary等。 那么类簇有哪些特点了: ...

  • 类簇

    // 类簇 // 在 OC 中, init开头的初始化方法所做的和其他方法并没有很大不同,只是将 self 进行了...

  • 类簇

    首先需要了解一下iOS的 类簇 ,https://www.jianshu.com/p/3ae2f9589fae 我...

  • iOS开发设计模式之类簇

    本文试图探讨以下三个问题 什么是类簇 使用类簇有什么好处 类簇的具体应用 1. 什么是类簇 类簇的英文名是clas...

  • 关于类簇

    在ios中,比如NSString,NSArray, NSNumber 这些都是类簇,大概就是说,他们在alloc的...

  • iOS类簇

    IOS 类簇 类簇(class cluster)是一种设计模式,在Foundation Framework中被广泛...

  • iOS 类簇

    iOS 类簇 Person.h Person.m TestCode 打印结果2021-07-14 14:19:16...

  • iOS 类族(类簇)

    什么是类族 "类族"是一种很有用的模式(pattern),可以隐藏"抽象基类"背后的实现细节.比如UIKit框架中...

  • 官方文档中“类簇”的翻译

    类簇 在官方文档中的解释 官方文档中的解释 以下是翻译 类簇 类簇是Foundation框架广泛使用的设计模式。类...

网友评论

    本文标题:类簇

    本文链接:https://www.haomeiwen.com/subject/ovyjittx.html