设计模式 -- 多例模式

前言

月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂)

央是一片海洋,海乃百川,代表着一块海绵(吸纳万物)

泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出)

月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容

希望大家一起坚持这个过程,也同样希望大家最终都能从零到零,把知识从薄变厚,再由厚变薄!

一、什么是多例模式?

        在了解了单例模式之后,多例模式就会更加轻松,本质上多例模式就是单例模式的扩展,多例模式也叫对象池模式,是一种用于限制类实例化次数,可以创建指定数量的实例.

二、多例模式的优缺点

 优点:

  1. 可以限制实例数量:多例模式可以限制实例数量,确保系统中只有指定数量的实例存在,避免过多的资源消耗。

  2. 可以复用已有实例:多例模式可以复用已有实例,避免重复创建对象,提高系统性能。

  3. 可以灵活控制实例的生命周期:多例模式可以灵活控制实例的生命周期,可以在需要时创建实例,也可以在不需要时销毁实例,避免浪费系统资源

缺点:

  1. 难以扩展:多例模式的实例数量是固定的,难以动态地增加或减少实例数量。

  2. 难以测试:由于多例模式的实例数量是固定的,难以对每个实例进行单独的测试。

  3. 破坏封装性:多例模式需要全局访问实例,这破坏了封装性,使得代码难以维护和扩展。

  4. 代码复杂度高:多例模式的实现需要考虑线程安全、序列化等问题,因此代码复杂度较高。

三、多例模式的结构:

 

四、多例模式实战

        以上图结构为例,假设现在有一客人,要去拜访远房亲戚家,家里人有三口人,客人到家门口后需要询问开门,这个时候一家三口谁都有可能去开门.

1.构建Master

 

2.guset开始访问

 

3.最终开门的结果

 

看来永远都是做儿子的最累,这个亲戚不是妈妈家的吧,不愿意开门.

五.总结

        多例模式在数据库连接池,线程池等地方多有用到,如果不针对多例模式去做一些策略情况,很有可能会出现其中一个实例多次执行,而别的实例一次都没有用到的情况,因此在实际使用过程中也可以借鉴下线程池的设计思想,集思广益.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值