关键词:本体、客体、构造、映射、功能。
别名:桥接变量、型变变量、容器变量、适配变量,构造变量;
原则:不修改本体的实现。
原始版本:
在本体的扩展中,直接构造客体;客体的构造器输入参量为主体;
客体为具体类,直接完成本体想要完成的功能;
版本升级一:客体泛型化
目的:客体的功能实现脱离
// 客体
public final class YKKit<Base> {
public let base: Base
public init(_ base: Base) {
self.base = base
}
}
//构造器
public var yk: YKKit<Self>{
get { return YKKit(self) }
}
// 定义泛型协议
public protocol YKKitCompatible {
associatedtype CompatibleType
var yk: CompatibleType { get }
}
// 协议的扩展
public extension YKKitCompatible {
public var yk: YKKit<Self>{
get { return YKKit(self) }
}
}
// 实现命名空间yk
extension String: YKKitCompatible {}
版本升级三:客体协议化
public struct NamespaceWrapper<T>: TypeWrapperProtocol {
public let wrappedValue: T
public init(value: T) {
self.wrappedValue = value
}
}
public protocol TypeWrapperProtocol {
associatedtype WrappedType
var wrappedValue: WrappedType { get }
init(value: WrappedType)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。