一个 a ,b 接口 get 方法需要在不同组件用到,我把它提取成公共方法,用的时候导入
请问上述行为是封装还是复用?
补充:c 接口 get 无法使用,post 等其他接口无法使用,提取的意思就是单纯的复制粘贴
1
binux 2022-07-20 08:14:12 +08:00 via Android 1
复用
|
2
gzyguy 2022-07-20 08:43:52 +08:00 via iPhone 1
封装指的是创建 axios 实例并对 get 、post 等方法进行自定义。包括请求拦截等一些操作。所以题主做的是复用不是封装。
|
3
kop1989smurf 2022-07-20 09:54:39 +08:00 2
不太同意楼上的思路。
复用,是封装的形式之一,既没有经过特殊处理的“封装”。换句话说,不管是否进行了自定义,其实都是封装。 从软件工程角度讲,调用者是无需了解实现的,区分“复用”还是“封装”的意义很小。 但反过来讲,如果你的“封装”的内容,仅仅是调用了一个标准的库函数,既没有减少代码量,又没有实现逻辑的归纳,又徒增了耦合性,你就要思考这个封装的必要性了。 |
4
kop1989smurf 2022-07-20 09:58:37 +08:00
换句话说,楼主需要质疑和纠结的并不应该是这个行为的命名(到底是不是封装),而是这个行为本身是否有意义。
|
5
66beta 2022-07-20 10:35:27 +08:00 1
是封装,但不是针对 axios ,而是自己封装了一个组件
|
6
renhou OP @66beta
@kop1989smurf 谢谢老哥们 可能有些强行,我看各种百科对封装的定义,虽然我这种“封装”比较 low 但是隐约觉得还是属于封装。。 不过就像 5 楼所说,并不是封装 axios ,而是封装了一个自己的方法 什么也不做,我会在 3 个地方写 3 个同样的 get 方法 这样“封装”的意义在于,我只需要写一个 get 方法,导入 3 次即可,感觉这样也算是减少代码量,提升维护性了 > '封装(英语:Encapsulation )是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法' |
7
IvanLi127 2022-07-20 13:42:07 +08:00
你提取了这个接口的调用逻辑,封装了调用这个接口的方法。这个接口一直都是被复用的状态,你的操作只是把复用 level 提升到了你封装的方法上。你只是使用了 Axios ,并没有对它做什么奇怪的事情。
我感觉大概是这样。 |