教学网站制作,wordpress主题 可爱,wordpress备案怎么写,网站建设中的html页面下载文章目录 **单例模式**: 独一无二的特工我们为什么需要这样的特工?单例模式的秘密#xff1a;如何培养这样的特工?特工的利与害代码实现单例模式的主要优点单例模式的主要缺点单例模式的适用场景总结 单例模式: 独一无二的特工
单例模式就像是一个秘密组织里的特殊特工。这… 文章目录 **单例模式**: 独一无二的特工我们为什么需要这样的特工?单例模式的秘密如何培养这样的特工?特工的利与害代码实现单例模式的主要优点单例模式的主要缺点单例模式的适用场景总结 单例模式: 独一无二的特工
单例模式就像是一个秘密组织里的特殊特工。这个特工非常独特,整个组织里只有他一个人而且随时待命随叫随到。
我们为什么需要这样的特工?
因为它独一无二: 就像詹姆斯·邦德007只有一个。我们组织不需要多个一模一样的特工那样会造成混乱。而且它时时刻刻待命所有人都知道去哪里找这个特工。不用满世界找一个电话就能联系上。
单例模式的秘密如何培养这样的特工?
特工的培训是绝密的(私有构造函数)没人知道他是怎么被训练出来的。而且他特殊联络人组织安排了一个特殊的联络人(静态方法)。只有通过这个联络人你才能接触到这个特工。
特工的利与害
第一方便所有人都知道去哪里找这个特工不用满世界找一个电话就能联系上其次唯一组织里只有一个这样的特工。不用担心重复最后可靠特工总是待命状态(静态变量)不用每次都重新培训。
代码实现
class SecretAgent {// 特工private static instance: SecretAgent;// 特工的联络人private constructor() {// 私有构造函数,防止外部实例化console.log(特工被创建了);}// 获取特工public static getInstance(): SecretAgent {if (!SecretAgent.instance) {SecretAgent.instance new SecretAgent();}return SecretAgent.instance;}// 特工执行任务public doMission(): void {console.log(执行任务);}
}// 联系特工
const job1 SecretAgent.getInstance();
// 执行任务
job1.doMission(); // 输出 特工被创建了 执行任务// 再次联系特工
const job2 SecretAgent.getInstance();
// 执行任务
job2.doMission(); // 输出 执行任务 单例模式的主要优点
节省资源单例模式通过共享一个实例避免了每次创建对象时都进行初始化从而节省了资源提高性能隐藏具体实现单例模式将对象的创建过程隐藏在内部从而提高了代码的可维护性和可读性。
单例模式的主要缺点
单例模式将对象的创建过程隐藏在内部难以扩展与难以调试
单例模式的适用场景
需要隐藏内部实现共享一个实例并且需要节省资源提高性能。
总结
单例模式是一种创建型设计模式它在确保一个类只有一个实例隐藏了内部实现并提供一个全局访问点从而节省资源提高性能。
喜欢的话就点个赞 ❤️关注一下吧有问题也欢迎讨论指教。感谢大家
下期预告TypeScript 设计模式之【原型模式】