博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搬砖方法论:保持约束的单例
阅读量:4147 次
发布时间:2019-05-25

本文共 341 字,大约阅读时间需要 1 分钟。

单例作为一种可供全局使用的唯一对象,而被普遍使用。但是能够这么做不代表就应该这么用。

单例在带来便利的同时也应该受到约束,如果一个单例遍布每个模块各处,这本身就是错误的使用方式,其缺点如下:

  • 如果需要修改API,则涉及范围过大
  • 各功能模块会直接将依赖关系与其绑定
  • 在使用时可能会调用不正确的API、错误的调用顺序又或者更改其内部状态

所以在使用单例时,从API设计上来讲,允许同一API可以反复被调用、降低的几率、封装其不必要的接口,仅在各模块启动入口对其引用。

注:还有一种与单例模式非常相似的模式叫做 环境上下文(Ambient Context),它所含有的缺点与单例一样。它在使用时与单例的区别是:单例模式是始终保持唯一的对象,环境上下文是允许对象变更的。


更多文章详见主页:

转载地址:http://wojti.baihongyu.com/

你可能感兴趣的文章
【Python基础9】浅谈深浅拷贝及变量赋值
查看>>
Jenkins定制一个具有筛选功能的列表视图
查看>>
【Python基础10】探索模块
查看>>
【Python】将txt文件转换为html
查看>>
[Linux]Shell脚本实现按照模块信息拆分文件内容
查看>>
刚刚写的一个Win32 SDK的工程扩展模板
查看>>
关于飞信的协议以及验证码
查看>>
E销助手软件(销售员的软件)
查看>>
Delphi类似QQ皮肤控件,欢迎试用!
查看>>
揭开半透明窗体的秘密(转)
查看>>
Delphi实现QQ2010的图片皮肤效果
查看>>
转载几篇别人写的皮肤类控件的技术文章
查看>>
Delphi XE的RTTI增强,动态Hook某些内部事件
查看>>
自制操作系统-kernel加载
查看>>
spring cloud config 报错,java.io.EOFException: Short read of block
查看>>
filebeat安装配置-简单版
查看>>
spring-cloud-config 突然报错 cannot open git-upload-pack
查看>>
oauth2.0 使用redis 缓存client token,导致redis内存爆了 -线上问题解决
查看>>
记录线上问题:服务器docker进程卡死了,打任何命令都无反应,最终是linux内核bug导致的
查看>>
vue devtools 安装使用(用源码构建)
查看>>