public class ClientDB { public static void main(String[] args) { // Ο Client χρησιμοποιεί τη βάση μέσω του Caching Proxy Database db = new ProxyCacheDatabase(); String queryStr = "SELECT * FROM users WHERE id = 1"; // 1η Κλήση: Η cache είναι άδεια, θα πάει στη RealDB (Θα κάνει 1.5 δευτερόλεπτο) System.out.println("\n=== 1st Attempt (Empty Cache) ==="); long startTime = System.currentTimeMillis(); String result1 = db.query(queryStr); long endTime = System.currentTimeMillis(); System.out.println("Result: " + result1); System.out.println("Exec time: " + (endTime - startTime) + " ms\n"); // 2η Κλήση: Τα δεδομένα υπάρχουν ήδη, θα απαντήσει ο Proxy ακαριαία (0 ms) System.out.println("=== 2nd Attempt (Found in Cache) ==="); startTime = System.currentTimeMillis(); String result2 = db.query(queryStr); endTime = System.currentTimeMillis(); System.out.println("Result: " + result2); System.out.println("Exec time: " + (endTime - startTime) + " ms"); } }