Şu anda doğrudan redis adaptörünü fonksiyonların içinde kullanıyoruz fakat ileride farklı bir paket kullanmak istersek tüm kodları değiştirmemiz gerekecek bundan dolayı adaptörü interface kullanarak soyutlayabiliriz.
RedisAdaptor adında yeni bir yapı oluşturup kullanılan her Redis komutunun orada karşılığı oluşturulmalı ve Metronom içinde RedisAdaptor fonksiyonları kullanılmalı
import { createClient, RedisClientOptions, RedisClientType } from 'redis';
interface RedisAdaptor {
hSet: (key: string, values: Array<any>): number
}
class NodeRedisAdapter implements RedisAdaptor{
hSet(key,values)// ...
}
Metronom içinde:
// ctor
this.redisClient: RedisAdaptor = new NodeRedisAdaptor();
// this.redisClient: RedisAdaptor = new OtherPackageAdaptor();
// some function
this.redisClient.hSet('asda', ['name', 'alihan']);
Şu anda doğrudan redis adaptörünü fonksiyonların içinde kullanıyoruz fakat ileride farklı bir paket kullanmak istersek tüm kodları değiştirmemiz gerekecek bundan dolayı adaptörü interface kullanarak soyutlayabiliriz.
RedisAdaptor
adında yeni bir yapı oluşturup kullanılan her Redis komutunun orada karşılığı oluşturulmalı ve Metronom içindeRedisAdaptor
fonksiyonları kullanılmalıMetronom içinde: