欢迎光临散文网 会员登陆 & 注册

设计模式:单例模式

2021-04-03 14:45 作者:做架构师不做框架师  | 我要投稿

什么是单例模式?

单例模式(英文:Sigleton pattern),保证一个类在任何情况下都只有一个实例,并提供一个安全访问点。

一句话归纳

保证独一无二。

代码示例

饿汉模式(在类加载时就创建,浪费内存):

懒汉模式(在第一次使用时被创建,对程序性能会有一定影响):

枚举模式(更简洁、无偿提供了序列化机制,绝对防止多次实例化,即使是在面对复杂的序列化或者反射攻击的时候):

适用性

以下优点我建议你考虑使用:

  • 在内存里只有一个实例,减少内存开销,尤其是在一个类频繁创建或销毁;

  • 工具类和静态常量类;

  • 避免对资源的多重占用。

局限性

以下问题我建议你谨慎使用:

  • 没有接口,不能继承,扩展除了修改自身以外别无他法;

  • 单例模式与单一职责原则有冲突。一个类应该只实现一个逻辑,而不关心它是否是单例的,是不是要单例取决于环境,单例模式把“要单例”和业务逻辑融合在一个类中。

写在最后

最后,好兄弟,记得点赞,关注,谢谢。




设计模式:单例模式的评论 (共 条)

分享到微博请遵守国家法律