一句话设计模式(一):单例模式

博客迁移已迁移到https://www.guyuemeng.com

前言

迷迷糊糊的混了几年编码界,号称编码界除名人员,所幸尚未被编码界除名。这一路走来,听说了不少设计模式,也不知道是记性不好还是怎么地,横竖也就会用个工厂模式,要不就是自己用了都不知道,惭愧的狠。前段时间读《中国哲学简史》,关于《墨经》一段“所以谓,名也;所谓,实也”,对应于代码,恰如变量名与对象存储。细细想来,编码界同建筑界同经管界同社交同布置屋子一样,莫不是哲学与方法论的不同切面展现。一个程序员的代码写的怎么样,恰如他的生活过的怎么样,生活与编码往往都在偷偷互相印证。
关于设计模式,讲解的人实在太多。暂不说应接不暇,大多数的讲解侧重于实现,举例倒也比较典型,可惜对我这样的愚夫来说,不管看个几遍也只能相忘于江湖了。再加上些许场景是多种模式的组合,那更是伤透了脑筋。
此处,尝试着将各个设计模式拆解到原子粒度,剥离不属于该设计模式的附属品,并不会刻意讲解某种语言的实现。
尝试将各设计模式提供的能力正交,构成n+维模式空间,基于任务分解与建模能力的基础上,可自由组合设计模式。期望可以达到设计自由的目标。

一句话

唯一资源的访问控制,适用单例模式

解析

唯一资源

唯一资源是相对访问的客体来说,问题域不同,是否是唯一资源尚需要重新审视。例如长途客车的检票口,相对10点从上海到苏州的旅客来说,它是唯一的检票口,即唯一的资源;相对汽车站管理人员来说,这只是众多检票口中的一个。
形成唯一资源的情况有多种,常见的有以下两类:

  1. 唯一的物理资源,如:网络打印机、系统线程池、ID分配等等
  2. 以空间换性能,设计为唯一资源,如:较大的静态配置文件信息,加载内存与软件同生命周期,避免频繁IO读写
    以上只是对于唯一资源的一些简单理解,具体设计需要看实际问题域。
    基于设计模式作用域,只需要知道它是否是唯一资源,无需关注为什么是唯一资源,这也是此处不做详细分析的原因。

访问控制

针对唯一资源的访问控制,核心要素是什么?或许第一个蹦出脑海的就是线程安全,这当然是不对的,核心是保证唯一资源的唯一性!
唯一性包含以下几点:

  1. 唯一构建:唯一资源必定有且只能有一个,往往是类体或静态函数体的静态对象
  2. 唯一获取:访问者只能获取到唯一资源的引用,访问者无权构建或销毁此唯一资源
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值