from abc import ABC, abstractmethod
class Repository(ABC):
@abstractmethod
def add(self, item):
pass
@abstractmethod
def get(self, item_id):
pass
class InMemoryRepository(Repository):
def __init__(self):
self._data = {}
def add(self, item):
self._data[item["id"]] = item
def get(self, item_id):
return self._data.get(item_id)
repo = InMemoryRepository()
repo.add({"id": 1, "name": "Item 1"})
print(repo.get(1))
class InMemoryRepository {
constructor() {
this.data = new Map();
}
add(item) {
this.data.set(item.id, item);
}
get(itemId) {
return this.data.get(itemId);
}
}
const repo = new InMemoryRepository();
repo.add({ id: 1, name: "Item 1" });
console.log(repo.get(1));
abstract class Repository<T> {
void add(T item);
T? get(int id);
}
class InMemoryRepository<T> implements Repository<T> {
final Map<int, T> _data = {};
@override
void add(T item) {
if (item is Map && item.containsKey("id")) {
_data[item["id"]] = item;
}
}
@override
T? get(int id) {
return _data[id];
}
}
void main() {
final repo = InMemoryRepository<Map<String, dynamic>>();
repo.add({"id": 1, "name": "Item 1"});
print(repo.get(1));
}
class InMemoryRepository
def initialize
@data = {}
end
def add(item)
@data[item[:id]] = item
end
def get(item_id)
@data[item_id]
end
end
repo = InMemoryRepository.new
repo.add({ id: 1, name: "Item 1" })
puts repo.get(1)