一个简单的代码结构演变--使用builder模式进行业务和功能的解耦合

  builder模式是一种非常简单且容易理解的设计模式。在我们使用各种三方类库时经常会用到。本篇文章不会具体介绍builder模式。只是随着工作时间增加,感觉到平常我们使用设计模式并不是一蹴而就的,大部分都是随着业务累加或改变,才会依据不同设计模式对代码进行不同程度的调整。最近也是面试了一阵,想着正好可以举一个简单演变的例子,对日常工作中使用的设计模式做一个总结。这次以一个最简单的builder模式为例,看看我之前工作中代码结构是如何演变的。

阅读全文

一起读RxJava源码(六)——深入浅出:基于波浪事件流和模块化的思路分析RxJava

  前面Rx系列的五篇文章从源码的角度分析了RxJava几个主要功能的具体实现逻辑。在学习了RxJava源码之后的一段时间里,我阅读了Rx相关更多的文章,以及通过面试、技术分享等经历,一直在思考一个问题,就是如何总结RxJava的思想,其实就是如何讲清楚RxJava。尤其对于面试这种情况来说,很难在短时间内细抠源码,如何让面试官知道你学习过源码而不是只有使用的经验。以及在分享的时候如何能让听者快速理解。这篇文章就是我近期对这类问题的一个思考总结,基于波浪事件流和模块化的思路来分析RxJava。

阅读全文

斐波那契数列(Fibonacci sequence)的6种解法

  最近在刷Leetcode,目前在“Explore”中出了很多学习和面试的专题,刷了几个系列感觉非常不错。“斐波那契数列”是一个很经典的问题了,无论是讲解递归还是动态规划的文章中都时常能看到。可以用斐波那契数列求解的题目也有很多,比如“爬梯子”和“兔子繁殖”等经典问题。在此主要是记录一下解决“斐波那契数列”类似问题的6种思路。

阅读全文

一起读RxJava源码(五)——线程调度

  经过前面四篇文章,我们已经了解了RxJava相关的一些基础。接下来,我们将进入RxJava最核心的内容—-线程调度。从Rx官网介绍来看,ReactiveX系列实现的核心功能就是异步编程,而程序层面中实现异步的核心是多线程。本篇文章内容稍长,如果稍有困惑可直接跳到文章末尾看流程图,可能会方便理解。

阅读全文

一起读RxJava源码(四)——转换操作符

  上一篇我们介绍了RxJava最基本的实现方式以及源码逻辑,但是仅仅会基础实现方式是远远不够的。RxJava有着大量的各式各样的操作符(如上图谱所示)。也正是因为这些操作符,使得RxJava可以很简单且简洁的实现一些复杂的问题。这也是RxJava以至于Rx系列强大的原因之一。

阅读全文

一起读RxJava源码(二)——基础知识:观察者模式

  不知不觉博客搭建完成已经一个多月了,至今磕磕绊绊才发了两篇。搭建自己的博客之前看过不少别人搭建的技术博客,隐约发现一个有意思的规律,似乎每个博客的开始段落都会放一张跟技术毫不相干的照片,比如风景照,明星,篮球,动漫等等。我看过的绝大多数技术博客都完美的符合这一规律,原因不详,不明觉厉。平常倒是见过很多餐厅里挂关公、宿舍里挂科比柯南的,不知道是不是同一个道理,emmm……そですね。 所以自己写博客的时候觉得也遵守一下规律,求以后写博客文思泉涌,周末不加班……。

阅读全文


Powered by Hexo and Hexo-theme-hiker

Copyright © 2018 - 2023 TEN-Z'S BLOG All Rights Reserved.

访客数 : | 访问量 :