// 定义事件类型 export enum EventType { OpenGame = "OpenGame", Event2 = "Event2" } // 创建观察者类 export class Observer { private callbacks: Function[] = []; public addCallback(callback: Function) { this.callbacks.push(callback); } public removeCallback(callback: Function) { const index = this.callbacks.indexOf(callback); if (index !== -1) { this.callbacks.splice(index, 1); } } public notify(data: any) { this.callbacks.forEach(callback => { callback(data); }); } } // 创建观察者管理类 export class ObserverManager { private static observers: Map = new Map(); public static addObserver(eventType: EventType, callback: Function) { let observer = this.observers.get(eventType); if (!observer) { observer = new Observer(); this.observers.set(eventType, observer); } observer.addCallback(callback); } public static removeObserver(eventType: EventType, callback?: Function) { const observer = this.observers.get(eventType); if (observer) { observer.removeCallback(callback); } } public static notify(eventType: EventType, data: any) { const observer = this.observers.get(eventType); if (observer) { observer.notify(data); } } }