Typescript:强制类来实现单例模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Typescript:强制类来实现单例模式相关的知识,希望对你有一定的参考价值。
有没有办法强制类在typescript中实现单例模式。如果是这样,我怎么做到这一点?
所以这是我的界面,我希望每个实现它的类都被强制实现单例
export interface IObservable { } // marker
export interface ICorporationWebsitesService extends IObservable{
readonly Instance: ICorporationWebsitesService;
}
export class CorporationWebsitesService implements ICorporationWebsitesService {
private _instance: ICorporationWebsitesService;
public get Instance(): ICorporationWebsitesService {
if (this._instance === null) {
this._instance = new CorporationWebsitesService();
}
return this._instance;
}
private constructor() {
}
}
当然,我必须自己添加私有构造函数,但如果其他人想要实现此接口,则他/她不需要或注意到构造函数应该是私有的。
谢谢。
答案
接口无法实现Singleton模式。实际上,界面根本无法实现任何东西......
根据定义,单例模式涉及确保只存在给定类的单个实例。相反,接口本身不是类声明,而是描述给定类必须提供的属性才能实现接口。
确切地说,类如何实现这一点不一定是接口的关注点。 TypeScript语言中没有规定(也不是,我确定,任何其他语言)允许接口限制它的实现方式。
认识到这个答案虽然准确,但可能无法帮助解决你试图直接解决的问题,也许我可以建议你考虑一个新的问题,为你想要实现的大局提供更广泛的范围。
以上是关于Typescript:强制类来实现单例模式的主要内容,如果未能解决你的问题,请参考以下文章