1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
* 两针插座接口 */ protocol TwoPinPlugProtocol { var pin1: String { get } var pin2: String { get } }
class ThreePinPlug { var pin1: String { get { return "pin1 of ThreePinPlug" } } var pin2: String { get { return "pin2 of ThreePinPlug" } } var pin3: String { get { return "pin3 of ThreePinPlug" } } }
class TwoPinPlugAdapter: TwoPinPlugProtocol { let threePinPlug: ThreePinPlug! init(plug: ThreePinPlug) { self.threePinPlug = plug } var pin1: String { get { return threePinPlug.pin1 } } var pin2: String { get { return threePinPlug.pin2 } } }
打印两针插座信息(不可以接收三针插座) - parameter plug: 两针插座 */ func printTwoPinPlugInfo(plug: TwoPinPlugProtocol) -> Void { print("two pin plug info: [pin1 = \(plug.pin1), pin2 = \(plug.pin2)]") }
let threePinPlug = ThreePinPlug() let twoPinPlugAdapter = TwoPinPlugAdapter(plug: threePinPlug)
printTwoPinPlugInfo(twoPinPlugAdapter)
|