瞎谈干净架构(clean architecture)

写在前面的话:最近正在写一个自己的开源项目,打算使用像rxjava,retrofit,dagger2等开源框架,结果一个多月过去了,大框架基本写好了,却因为布局想绚丽一点,一直都没确定,最后拖延症犯了,就没再写了,这是多么痛的领悟…

另一方面,因为自带囫囵吞枣“技能”,导致学习新技术的时候一目十行,结果只是照猫画虎而已,并没有习得精髓,因此也促使我想开个技术博客,一方面梳理自己的思绪,另一方面希望这个行为能够治治自己的拖延症、纠结症等等等等,说得跟真的一样。


什么是干净架构

  咳咳,言归正传,由于我的项目是参照干净架构的架构模式来写的,因此,先讲讲干净架构吧。

  干净架构英文是clean architecture,也有翻译为清晰架构的,都给人结构分明的感觉,然而翻译成洗白白架构的筒子请去走廊罚站。

  这种架构最初是由uncle-bob提出来的,啰啰嗦嗦的名词解释我就不复制黏贴了,筒子们可以看我后面贴出来的博文链接详细看,我就说说我的理解:

  干净架构是一种分层的架构方式,将核心业务(对应domain层)、UI相关(对应presenter层)以及数据加载(对应data层)彼此独立开来,不同的层之间由接口依次连接起来,但却又彼此不了解彼此的具体实现。

  大概就是这种感觉:

  我想大多数第一次接触这个概念以及看到这个图的人跟我一样,都是黑人问号脸.jpg的。侦察到大神向我投来鄙视的目光,淡定装作看不到。

  举个通俗的例子的吧,双11不是要到了么,假设某大学三个童鞋和尚打算出一版专题海报,抨击这个本应抱团取暖的节日渐渐演变成购物的狂欢节所折射出来的社会浮躁,为充满铜臭、酸臭味的空气注入一股清香。

  起初,三个童鞋共同绘制海报,每人绘制一部分,结果绘制出来的海报没有层次、风格不一,简直就是一坨翔,说得就是你,什么都自己来的activity。后来他们痛定思痛,决定根据每个人的特长进行分工,a童鞋擅长分析(domain),因此由a负责整版海报内容的构思;b童鞋擅长搜集资料(data),因此由b负责提供海报的数据;c同学擅长绘画(presenter),因此由c负责绘制海报。整个过程大概是这种感觉:

海报绘制流程(雾

  这种分工使得彼此职责明确,哪个部分出问题了只需要修改相应部分即可。比如说,b有愧于老司机的名号,搜集的资料给人“裤子都脱了,就给我看这”的感觉,那么只需要痛打他一顿,让他重新定义搜索公式啥的即可,并不影响a和c。这也是干净架构所传递出来的模块间解耦的思想。

  扯了那么多,是否对干净架构有了初步的了(wu)解呢?接下来

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值