有个类 A,里面有很多方法,可能有互相调用,代码很多,是在是忍不了了,想拆分成多个文件
搜了下,ts 原生好像不支持。网上搜的方法都是要对代码改动比较多。
目前想到一个较少改动的,(只需要 复制-粘贴)
就是把想归集的方法写到一起
依次继承,
最后只要暴露最下面的类
但是要保证继承顺序,还是有些繁琐,
请问有更好的方式吗?(不改业务代码,或者极少改动)
a,b,c 这三个方法可能有互相调用的情况
class A {
a(){ } //业务代码
b(){ } // 业务代码
c(){ } // 业务代码
}
------------- 拆分后,各个类放在不同文件----------
/// a.ts
class A_0{
a(){} // 空 body
b(){} // 空 body
c(){} // 空 body
}
class A_a extends A_0{
a(){
/// 实际代码
}
}
// b.ts
class A_b extends A_a{
b(){
/// 实际代码
}
}
// c.ts
class A_c extends A_b{
c(){
/// 实际代码
}
}
/// 暴露给外面使用
class A extends A_c{
}
1
lzgshsj 2022-05-27 14:13:29 +08:00
感觉不能治本,代码耦合度太高了。但是你的要求又是极少改动。。。感觉以后会成屎山
|
2
codehz 2022-05-27 14:21:09 +08:00
你这拆分还不如不拆分呢,想清楚目的再决策
|
3
eason1874 2022-05-27 14:22:08 +08:00 1
因为业务需要,在一个大类中有上百个方法,近万行代码,并不奇怪
为了抽象而抽象,人为提高代码组织复杂度,这才是毛病,得改掉 |
4
taowen 2022-05-27 14:26:11 +08:00
拆成多个类不就行了么……
|
5
0x2CA 2022-05-27 20:14:40 +08:00
组合优与继承。。。,直接职能拆分,拆分成多个类
|
6
ychost 2022-05-28 14:54:59 +08:00
ts 貌似没有 C# 的 partial class ,不过一个 class 方法多也问题不大,高度内聚就行
|
7
lblblong 2022-05-28 22:29:39 +08:00 1
|
8
lblblong 2022-05-28 22:31:21 +08:00
我这个库就用了大量 mixin: https://github.com/lblblong/wechat-api-next
|