- 对象1
import Foundation
class ObjectAdaptee1 {
var IntCount = 0
}
复制代码
- 对象2
//角色一:被适配者
import Foundation
class ObjectAdaptee {
var URAMoney = 0.0
}
复制代码
- 一个协议这里只举例一个方法,也可能有多个方法。
import Foundation
//角色二:目标接口
protocol ObjectTarget {
func getRMB() -> Double
func getInt() -> Int
}
extension ObjectTarget {
func getInt()->Int {
return 10
}
}
复制代码
- 让被适配者分别拥有某个方法
import Foundation
//角色三: 适配器
//实现目标接口
//持有被适配者的引用
class ObjectAdapter : ObjectTarget {
var adaptee: ObjectAdaptee
var adaptee1: ObjectAdaptee1
init(adaptee: ObjectAdaptee,addaptee1:ObjectAdaptee1) {
self.adaptee = adaptee
self.adaptee1 = addaptee1
}
func getRMB() -> Double {
return self.adaptee.URAMoney * 6.5
}
func getInt()->Int {
return self.adaptee1.IntCount * 2
}
}
复制代码
- 调用
import Foundation
print("Hello, World!")
let adaptee = ObjectAdaptee()
adaptee.URAMoney = 100
let adaptee1 = ObjectAdaptee1()
adaptee1.IntCount = 10
let adapter = ObjectAdapter(adaptee: adaptee, addaptee1: adaptee1)
let rmb = adapter.getRMB()
let intC = adapter.getInt()
print("rmb = \(rmb) int = \(intC)")
复制代码
- 结果rmb = 650.0 int = 20
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END