当我 们对这些策略对象发出“计算奖金”的请求时,它们会返回各自不同的计算结果,这正是对象多态性的体现,也是“它们可以相互替换”的目的。替换 Context 中当前保存的策略对象,便能执行不同的算法来得到我们想要的结果。使用组合函数来重构代码,把各种算法封装到一个个的小函数里面,这些小函数有着良好的命名,可以一目了然地知道它对应着哪种算法,它们也可以被复用在程序的其他地方。在 JavaScript 语言中,函数也是对象,所以更简单和直接的做法是把 strategy 直接定义为函数。
2023-08-20 16:17:52
889
单例模式的定义是:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2023-08-20 15:00:46
1013
代码优雅化进阶学习(三)
2023-04-14 19:30:00
647
1
代码优雅化进阶学习(二)
2023-04-11 22:15:00
133
优秀代码汇总学习(一)
2023-04-10 22:30:00
121
React 执行架构流程详细----归阶段 mount 时流程(三)
2023-03-18 16:26:42
591
3
React 执行架构流程详细----递阶段 mount 时流程(二)
2023-03-18 15:18:47
641
React 执行架构流程概览
2023-03-12 11:45:40
855
1
Node 异步I/O 实现
2023-01-13 17:40:00
724
useRef 源码解读
2022-12-18 22:30:00
609
useEffect 和 useLayoutEffect 的源码解读
2022-12-16 19:40:00
608
React 新老架构对比(React 架构演进史)
2022-12-13 15:45:00
260
React 的设计理念(React 哲学)
2022-12-12 22:08:58
486
useState源码解读 及 手撕 useState 实现
2022-12-05 11:53:17
531
2
使用TS 封装 自定义hooks,实现不一样的 CRUD
2022-12-04 09:56:31
1178
对象数组去重
2022-11-23 15:26:57
147
hooks 内部结构
2022-10-31 20:48:04
429
Fiber的理解
2022-10-21 14:39:44
1092
温故知新 -- react 官方文档总结2
2022-10-17 10:21:13
431
温故知新 -- react 官方文档总结1
2022-10-15 11:08:37
656
js代码在V8中怎么执行的
2022-10-02 10:19:31
286
NaN 的 注意点
2022-09-30 21:30:39
435
requestAnimationFrame 和 setTimeout 的区别
2022-09-18 11:22:19
1343
浏览器的 5 种 Observer
2022-09-18 10:38:56
500
React.PureComponent 和 React.Component 的区别
2022-09-15 21:17:02
347
React.fragment 和 有什么区别
2022-09-12 15:40:29
374
pureComponent
2022-09-12 14:43:13
385
编写 loader
2022-09-12 10:30:26
210
webpack 的 HMR 原理
2022-09-12 09:42:29
161
webpack 的 plugin 实现
2022-09-11 09:37:41
178
Object.create(null) 和 {} 的区别
2022-09-03 11:31:12
135
千位分隔数
2022-09-02 20:07:48
92
字符串相乘及 js中 +a的作用
2022-09-01 16:07:43
511
etag生成原理
2022-08-26 08:29:33
504
实现 Promise.all 方法
2022-08-22 20:38:02
56
渲染十万条数据的方法
2022-08-21 20:46:01
378
对称加密和非对称加密区别
2022-08-19 11:34:12
301
rem和em的区别
2022-08-19 11:26:28
144
数组去重
2022-08-19 10:24:57
55
react-router V6 版本的使用(自己封装了 Redirect等)IndexRouter.js 使用useRoute 做全局路由的搭建,包括嵌套路由,路由重定向,路由拦截(自己封装),路由懒加载(做了一个简单的封装)等import React from 'react';import {useRoutes} from "react-router-dom";import LazyLoad from "./Lazyload";import NewsSandBox from "../views/
2022-05-21 16:52:21
2358