设计模式
盖世胖胖
冠军的心是至死不渝。
展开
-
模板方法
最近工作中发生了一个事故:网站和APP都依赖于底层服务的一个接口,网站是通过Dubbo调用,APP则是Jar包依赖的方式。因该接口调用次数频繁、极端情况下会把该接口调爆,底层服务的同事就把该接口改成了批量接口。网站和APP的代码都改成了调用批量的接口,测试环境下前后端代码都同步上,测试都通过了。上线那天,网站和APP的主线代码都发现合了测试未完结不能上线的代码,而网站要上线一个活动必须发包。决定网站原创 2016-12-01 20:02:55 · 266 阅读 · 0 评论 -
外观模式
最近,公司在进行微服务改造。微服务就是将巨型应用分解为不同的中心,每个中心对外提供一系列的原子服务(atomic)、系统基准服务(base)以及业务服务(business)。各中心独立部署且独立扩展。服务消费者通过dubbo接口调用服务提供者提供的服务,这些服务内部的实现对服务消费者都是透明的。代码结构如下图: 这里就运用到了外观模式(Facade-Pattern),之所以这么称呼,是因为它将一个原创 2016-12-13 22:44:44 · 306 阅读 · 0 评论 -
策略模式
在上篇文章模式方法里我们谈到”开闭原则”,今天来看遵循”开闭原则”的另一种设计模式——策略模式。 策略模式准备了一组算法,并将每一个算法封装起来,使算法之间可以互换。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。下面就以实名认证调用第三方实名渠道的实现来讲解策略模式实例的结构,而且这个实例结合运用了模版方法。策略模式的实现代码(entity包下的实体类略去了):R原创 2016-12-06 00:24:24 · 336 阅读 · 0 评论 -
享元模式
享元模式采用一个共享来避免大量拥有相同内容对象的开销。在《自动装箱和拆箱》一文中提到,JAVA虚拟机启动后将-128~127之间Integer对象缓存起来,这样每次在使用-128~127之间的Integer对象时不用频繁创建,而是直接去缓存池里取。如果缓存池里存在该数值,就直接取出来;如果不存在,则返回新的对象。这种将常用或公共的数据缓存起来反复复用的方式,就体现了享元模式的思想。 publi原创 2017-04-09 19:15:59 · 272 阅读 · 0 评论