归档: 2021/3

共 47 篇文章

访问者模式

在实际工作中经常用到访问者模式,是比较常见的设计模式,本文主要通过以下几个方面来学习访问者模式:

  1. 什么是访问者模式,访问者模式想要解决的问题是什么?
  2. 访问者模式的经典应用有哪些?

Read More

代理模式

其实在日常生活中我们经常和代理模式打交道,比如当我们需要预定酒店时,我们(使用方)通常选择类似携程这样的平台来进行酒店和机票的预定,这里携程(代理)就代理了和酒店(服务提供方)之间的预订流程,使用方通过代理实现了和真实服务提供者之间的操作,那么为什么会使用代理而不是直接和服务提供方进行业务操作呢?可以通过以下两方面来考量:

  1. 代理提高了扩展性。以订酒店为例,乘客可以通过代理类(携程)调用不同类型的服务(不同酒店)实现。
  2. 代理降低了替换成本。实现了代理类提供的服务和实际业务服务的解耦,降低了服务替换的成本。还是以订酒店为例,让用户只需要关注到订酒店这件事情,和订酒店无关的其他事情都由代理商来做了。

Read More

责任链模式

说到责任链模式一定会想到各种拦截器,在很多框架中都有拦截器的使用,如常见的okhttp中的请求处理拦截器,路由框架中的路由拦截器,作为框架的使用方你可能已经对拦截器司空见惯,但是不可否认的是一个好的设计经常会有让人有眼前一亮的感觉。本文尝试总结一下在安卓框架和源码中,责任链模式的使用场景和设计方法。

Read More