Java'da Kod Optimizasyonu
Pavlos Kosmetatos
Lead Engineer @Wealthyhood
$$

public class RedisCache {
// Redis'e bağlanmak için kullandığımız istemci kütüphanesi
private final RedisClient client;
public RedisCache() {
// Bağlantı kurucu içinde ayarlanır
connection = new RedisClient("cache.mycompany.com");
}
}
Bu basit görünüyor ve çalışır; ancak olası bir sorun var
Ya Redis istemcisine hiç ihtiyacımız yoksa?
public class RedisCache {
private RedisClient client;
// Bağlantıyı kurucuda yapmak yerine,
// yalnızca biri istemciyi istediğinde kurarız.
public RedisClient getClient() {
if (connection == null) {
connection = new RedisClient("cache.mycompany.com");
}
return connection;
}
}
// UserService önbelleğe erişime ihtiyaç duyar
public class UserService {
private RedisCache userCache = new RedisCache(); // İlk bağlantı
}
// PaymentService de önbelleğe ihtiyaç duyar
public class PaymentService {
private RedisCache paymentCache = new RedisCache(); // İkinci bağlantı
}
// ...OrderService için de aynı...
public class RedisCache {
private static RedisCache instance;
private RedisClient client;
// Yalnızca bu sınıf içinde RedisCache oluşturduğumuzdan emin olmak için kurucu özeldir
private RedisCache() {}
public static RedisCache getInstance()
// Yalnızca yoksa bir RedisCache oluştururuz
if (instance == null) { instance = new RedisCache(); }
return instance;
}
// ... Geri kalanı öncekiyle aynı ...
}
Java'da Kod Optimizasyonu