Skip to content

Commit b6ea2e2

Browse files
author
Sebastian Boldt
committed
added adapter pattern
1 parent 98bcd9a commit b6ea2e2

File tree

4 files changed

+40
-1
lines changed

4 files changed

+40
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
* ✅ Bridge
3333
* ✅ Decorator
3434
* ✅ Composite
35-
* Adapter
35+
* Adapter
3636
* ❌ Facade
3737
* ❌ Flyweight
3838
* ❌ Protection Proxy
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
//: [Previous](@previous)
2+
3+
import Foundation
4+
5+
protocol OlderDeathStarSuperLaserAiming {
6+
var angleV: NSNumber {get}
7+
var angleH: NSNumber {get}
8+
}
9+
10+
struct DeathStarSuperLaserTarget {
11+
let angleHorizontal: Double
12+
let angleVertical: Double
13+
}
14+
15+
struct OldDeathStarSuperlaserTarget : OlderDeathStarSuperLaserAiming {
16+
private let target : DeathStarSuperLaserTarget
17+
18+
var angleV:NSNumber {
19+
return NSNumber(value: target.angleVertical)
20+
}
21+
22+
var angleH:NSNumber {
23+
return NSNumber(value: target.angleHorizontal)
24+
}
25+
26+
init(_ target:DeathStarSuperLaserTarget) {
27+
self.target = target
28+
}
29+
}
30+
31+
32+
let target = DeathStarSuperLaserTarget(angleHorizontal: 14.0, angleVertical: 12.0)
33+
let oldFormat = OldDeathStarSuperlaserTarget(target)
34+
35+
oldFormat.angleH
36+
oldFormat.angleV
37+
38+
//: [Next](@next)

Structural.playground/contents.xcplayground

+1
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44
<page name='Bridge'/>
55
<page name='Decorator'/>
66
<page name='Composite'/>
7+
<page name='Adapter'/>
78
</pages>
89
</playground>

0 commit comments

Comments
 (0)