Skip to content

Commit 5151be1

Browse files
committed
adapter pattern
1 parent 76bd5a5 commit 5151be1

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

structure_patterns/Adapter.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
class KVDatabase {
2+
private db: Map<string, string> = new Map()
3+
save(key: string, value: string) {
4+
this.db.set(key, value)
5+
}
6+
}
7+
8+
class PersistentDB {
9+
savePersistent(_: Object) {}
10+
}
11+
12+
class PersistentDBAdapter extends KVDatabase {
13+
constructor(public database: PersistentDB) {
14+
super()
15+
}
16+
17+
override save(key: string, value: string): void {
18+
this.database.savePersistent({key, value})
19+
}
20+
}
21+
22+
function run (base: KVDatabase) {
23+
base.save('key', 'value')
24+
}

0 commit comments

Comments
 (0)