看用TypeScript怎样实现常见的设计模式,顺便复习一下。
单例模式 Singleton
特点:在程序的生命周期内只有一个全局的实例,并且不能再new出新的实例。
用处:在一些只需要一个对象存在的情况下,可以使用单例,比如Cache, ThreadPool等。
注意:线程安全,当然,这在单线程的JavaScript环境里是不存在的。
下面用TypeScript写一个Cache来看看单例模式:
class Cache{ public static readonly Instance: Cache = new Cache(); private _items: {[key: string]: string} = {}; private Cache(){
} set(key: string, value: string){ this._items[key] = value; console.log(`set cache with key: '${key}', value: '${value}'`);
} get(key: string): string{ let value = this._items[key]; console.log(`get cache value: '${value}' with key: '${key}'`); return value;
}
}
Cache.Instance.set('name', 'brook');
Cache.Instance.get('name');输出:
set cache with key: 'name', value: 'brook'get cache value:&nb

