// Proxy pattern example for controlling access to a sensitive object class SensitiveObject { constructor(data) { this.data = data } access() { console.log('Accessing sensitive object'); return this.data; } } class ProxyObject { constructor(sensitiveObject) { this.sensitiveObject = sensitiveObject; } access() { if (this.checkAccess()) { return this.sensitiveObject.access(); } else { console.log('Access denied'); } } checkAccess() { // Perform validation or checks here return false; // Simulating access denial for demonstration } } // Usage const sensitiveObject = new SensitiveObject('sensitive data'); const proxy = new ProxyObject(sensitiveObject); proxy.access(); // Access denied