34 lines
978 B
Java
34 lines
978 B
Java
package proxy;
|
|
|
|
/**
|
|
* Real Subject — the actual, expensive database connection.
|
|
* Opening it takes time. We want to delay this until truly needed.
|
|
*/
|
|
public class RealDatabaseConnection implements DatabaseConnection {
|
|
|
|
private final String url;
|
|
|
|
public RealDatabaseConnection(String url) {
|
|
this.url = url;
|
|
}
|
|
|
|
@Override
|
|
public void connect() {
|
|
System.out.println("[Real DB] Connecting to " + url + " (expensive operation)...");
|
|
// Simulate connection setup time
|
|
try { Thread.sleep(100); } catch (InterruptedException e) { Thread.currentThread().interrupt(); }
|
|
System.out.println("[Real DB] Connected.");
|
|
}
|
|
|
|
@Override
|
|
public String executeQuery(String sql) {
|
|
System.out.println("[Real DB] Executing: " + sql);
|
|
return "ResultSet{rows=42}"; // simulated result
|
|
}
|
|
|
|
@Override
|
|
public void disconnect() {
|
|
System.out.println("[Real DB] Disconnecting from " + url);
|
|
}
|
|
}
|