2021-1-27 清空知乎收藏夹的总结第一弹

目录

依赖注入

如何用最简单的方式解释依赖注入?依赖注入是如何实现解耦的?
简而言之就是把控制权交给外部,让外部传进来一个实例对象进行控制,而不是自己的类里写死,这样的话就完成解耦,出现改动的话 只需要改动实例对象的类即可

面向抽象编程

面向抽象编程

大概意思是就是减少依赖,避免强耦合。在易变的部分,提前设置抽象类,让其他部分依赖于抽象类,而不是一个具体的实例,这样修改的时候 只需要修改抽象类即可。

发布订阅模式与观察者模式

手写Promise相关

JavaScript单线程的事件循环和任务队列

事件循环是指主线程重复从事件队列中取消息、执行的过程。指整个执行流程。

简单来说就是JavaScript维护一个主线程的同时,维护着一个任务队列。异步任务会挂起,不会立即进入主线程,而是进入任务队列。只要异步任务有了运行结果,就会在队列任务中放置一个事件。
一旦执行栈中所有的同步任务执行完毕后,系统就会读取任务队列,将可运行的异步任务添加到可执行栈中,开始执行。
你不知道的promise

2021-1-27 清空知乎收藏夹的总结第一弹_第1张图片

动态规划入门

如何理解动态规划?

比如正好我在LeetCode上刷到了回答里的台阶问题,实际上通过图能够发现,由于最多一次只能上1和2阶楼梯,那么到达第3阶有且只有 从1->3以及从2->3两种路径,而正好从1->3的方法数等于从0->1的方法数,同理2->3的方法数等于从0->2的方法数:即可以得出类似于斐波那契数列的规律:
f(x)=f(x−1)+f(x−2)

扩展:如果能一次能上N阶台阶,那么该规律应该为:
f(x)=f(x−1)+f(x−2)+…+f(x-n)

你可能感兴趣的:(2021-1-27 清空知乎收藏夹的总结第一弹)