[请益] 不少人不喜欢在class里加static function

楼主: DDxMM (停不下来)   2016-06-16 08:32:02
最近一直被主管酸不停的recode
,最近被酸说class里加static function,问他又不肯讲,请问大家这样写的好处跟坏处…
本人觉得好处是这样写可以防止class改烂了,function还有用处
坏处当然省不了内存,但class改烂了会省内存?
主管真难沟通,不喜欢事前规划,喜欢事后改code…
###############################
我的想法是这份code不知道要经手多少人
写成static function 至少后面的人不会乱call member, 造成相依一堆member, code一乱就....(除非他改成非static)
看太多维护到最后重写的命运,没留下多少可用的code
作者: stonegray (Pararararara)   2016-06-16 08:43:00
哪个语言?
作者: qweqweqweqwe (4qwe)   2016-06-16 08:45:00
先不说 static 的问题,但要防止改烂了应该有更好的方法…例如unit test…
作者: comesuck (艾米德)   2016-06-16 08:52:00
不想create instance才能用method就开static啊
作者: knives   2016-06-16 08:56:00
为什么你会觉得设成静态,就不会有改烂的问题
作者: sj1973 (史考特)   2016-06-16 08:57:00
你就把当一般c的api来看待就好了!class改烂也没多大关系!
作者: coronach (...)   2016-06-16 09:31:00
怕改烂应该是靠测试啊,static function 分类要做好,不然就会像我第一个工作看到的,Tool.java一万多行...
作者: angusyu (〒△〒)   2016-06-16 10:23:00
比如说常用的,多处共用1个属性的,开static没关系吧
作者: qrtt1 (有些事,有时候。。。)   2016-06-16 10:27:00
能开个电脑多打点字,把你的问题说清楚吗!?
作者: Yshuan (倚絃)   2016-06-16 10:30:00
个人也不是很喜欢static 这应该是design的问题
作者: hidog (.....)   2016-06-16 10:39:00
static不是问题所在吧看起来是你们code review/coding style/架构设计有问题把重点放在coding品质的管理上吧
作者: hardCode (硬抠)   2016-06-16 11:36:00
不少人不喜欢? 你要不要直接改很多人不喜欢 难阅读
作者: tvbic   2016-06-16 11:47:00
新手才会这样写
作者: angusyu (〒△〒)   2016-06-16 12:28:00
原来static method 是给新手用的 (笔记
作者: knives   2016-06-16 12:31:00
新手应该连什么叫static 都不知道吧
作者: Blueshiva (龙野南云)   2016-06-16 12:33:00
你真的知道Static function是用来干嘛的吗...
作者: GoalBased (Artificail Intelligence)   2016-06-16 12:35:00
同楼上...
作者: Bencrie   2016-06-16 12:36:00
你什么时候开始有非 static function 比较省内存的错觉
作者: alan3100 (BOSS)   2016-06-16 12:51:00
虽然你想偷酸主管 但看来你连class存在意义都搞错
作者: comesuck (艾米德)   2016-06-16 12:51:00
如果情境不一样,最省事就是开delegate自己外部实作再丢进来所有的method一写好都是跟class放在一起
作者: comesuck (艾米德)   2016-06-16 12:58:00
stackoverflow搜"where are methods stored in memory"
作者: popcorny (毕业了..@@")   2016-06-16 13:16:00
看情境 不过大部分都是non-static居多, static比较少
作者: tipsofwarren (tipsofwarren)   2016-06-16 14:13:00
我喜欢data isolation 能static 就 staticFunction 都在text segment 有self modified code?
作者: Masakiad (Masaki)   2016-06-16 14:17:00
先搞懂static的正确用法再来讨论
作者: final01 (牛顿运动定律)   2016-06-16 16:17:00
好多 static 神人
作者: feeya (24 August 升格为乡民)   2016-06-16 16:52:00
static不用new好用多了
作者: doranako (真爱无限)   2016-06-16 19:12:00
公用而且不需要存变量才比较多会使用static, 大部分还是nonstatic
作者: wuliou (wuliou)   2016-06-16 19:46:00
这串推文到底是反串还认真啊…
作者: KeySabre (KeySabreur)   2016-06-16 21:33:00
主要看是否跟instance的状态相关static or instance method 应该考虑的是设计上的权责而不是performance
作者: blackie1019 (blackie)   2016-06-16 23:28:00
老实说我觉得你主管还有时间酸你人还蛮好的...
作者: cobrasgo (人鱼线变成鲔鱼线,超帅)   2016-06-16 23:30:00
我觉得这没标准的答案,看CLASS的用途
作者: CoNsTaR ((const *))   2016-06-17 01:57:00
我觉得把你文章里的所有 static 通通换成 const 比较说得通 XD
作者: Ekmund (是一只小叔)   2016-06-17 02:24:00
我是觉得跟你的code要放在什么上面跑也有差...
作者: cha122977 (CHA)   2016-06-17 02:24:00
没状态差异的可以用
作者: goldberg123 (SmallHanWinchest)   2016-06-17 08:02:00
良葛哥网站去看一下再来讨论吧
作者: v7q4 ((.)(.)乳剑双修 -|=>)   2016-06-17 11:46:00
common tool之类的function都我用static的
作者: shadow0326 (非议)   2016-06-17 19:34:00
这文给我的感觉就是 为什么要用螺丝起子不用钉书机因为螺丝起子不会有用完订书针的问题
作者: thinklu   2016-06-18 08:38:00
static最多人垢病的地方是会有test issue, 像是mocking,你要怎么mock? 基本上比较常使用的时候大概是singleton或很小的until function是util打错 不好意思,建议多看看一些design的书 看看怎么写code比较好 然后可以用stackoverflow 去问问题,像static的好坏那边都有人分析过了当然 我怀疑那些酸你的资深人员到底知不知道这些 或单纯他们就是被人酸过 所以就酸你一下 但是从来没想去搞懂原因加油!
作者: siriusu (かがみは俺の嫁。)   2016-06-18 13:14:00
这篇推文好乱啊是反串很多吗我都搞不懂啦
作者: y3k (激流を制するは静水)   2016-06-18 16:28:00
static与否要看你的code怎么运用这个class 如此而已
作者: ripple0129 (perry tsai)   2016-06-18 22:20:00
都讨论到这了,顺便问一下单纯要单一性时如何挑选static或singleton
作者: manaup   2016-06-19 03:17:00
很多主管都不是程式写得好才当主管的 屁话一堆 你听听就好
作者: thinklu   2016-06-19 12:21:00
基本上单一性都会选singleton, 是design pattern习惯的使用,像可以写一个singleton class with static initialize() 去wrap你想要单一性的class, 这样会非常清楚,像UUID generator class基本上就蛮典型的是我说的这种应用,可以被singleton wrap
作者: dlikeayu (太阳拳vs野球拳)   2016-06-19 17:21:00
用singleton方法来做才能较有效率减少内存使用所以好的framework一般都会有一个入口static 成员或方法去实现下面的函式库再由这个singleton设计方法去包装工厂成员基本上定义出规范和使用接口,你就"比较难"去自行new一个未经包装的物件但是永远不要低估菜鸟及疲劳过度员工所会犯的错 XD
作者: readonly (唯读)   2016-06-19 22:14:00
这是在讲 java 吗?

Links booklink

Contact Us: admin [ a t ] ucptt.com