分类目录:设计模式

以下是分类 设计模式 下的所有文章

为什么扩展字段不是个好的设计模式

这一年以来,评审了很多设计方案,每次评审总能看到类似扩展字段、备注、ext1、ext2、ext3的设计,更有甚者在扩展字段中使用了json字符串,看似真是一个很灵活、高扩展的方案。 典型的案例有: 案例1 对外输出的接口预留了3个字段,ext1、ext2、ext3,开发者的目的是以后与外部系统的交互因为业务需求增加了某个字段,可……

懒加载单例模式的几种实现方式

实现懒加载单例模式,有多种实现方法,本篇文章给出一些简单的代码来说明各种方式的实现,特别注意第二种双检锁和第三种内部类方法,第三种内部类方法利用了类加载是在单线程中完成的特性,其实和双检锁的内部原理是相同的。另外,使用单值的枚举也可以实现单例模式,只不过需要JDK1.5的支持。 关于双检锁的安全问题,请……

老生常谈双检锁(DCL)

最近作为平台面试组的一员,对面试工作颇有感触,平台面试组出了一套笔试题,笔试题的最后一道题就是非常经典的实现一个线程安全的懒加载单例模式,并且需要候选人考虑效率来实现。 大家会认为,这么老套的一道面试题,是不是太简单了?非也非也,经过几个星期的面试,并且与每个候选人针对此题进行了沟通,能够真正的答……

【未完待续】后台服务平台建设随笔

最近有幸成为后台服务平台建设的一员,目标改造当前凌乱的各个后台项目,当前项目的特点是各个项目百家争鸣,技术交错复杂,没有统一的标准,没有统一的规范,实现功能即是完成任务,现在的需求是把当前众多项目中公用的模块进行抽取,抽象出通用的中间件,公用模块,公用项目等等,让各个垂直业务的开发人员能够更专注于……

代理模式(Proxy)和装饰者(Decorator)模式的区别

想必大家每个开发人员都懂得设计模式,也都用过设计模式,感觉追捧设计模式就像武林中的剑宗只重视剑法,而不重视气功的修炼,例如,很多人知道代理模式,也知道装饰者模式,如果把这两个模式放在一起,对比下UML图,就会发现,两者的结构惊人的相似,所以又很少有人说出两者的区别,本文仅仅通过对比代理模式(Proxy)和装……