如果项目中所有的方法都为静态会怎么样??

程序小海 2010-11-08 11:09:19
一个大型的公司项目
...全文
328 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
静态方法是属于整个类的方法,他随着类的定义进行存储空间的分配和保存,因此它在类的定义时就已经占用内存,如果整个项目都使用静态方法的话会占用大量的内存,不仅会影响项目的执行,也会对整个系统造成危害。
  • 打赏
  • 举报
回复
面向对象方法导致了直接使用跟需求分析、应用领域同样的术语来定义class、interface,而不是仅仅弄些编程领域的技术术语。

所编写出来的程序跟应用领域相同的术语、方法、流程完全一致,代码本身成文自明,这些代码不但可以给机器执行而且可以给人读懂高层次的控制逻辑。不需要写一大堆解释文档。当需求千变万化,每一个扩展都是微小的,而不是推倒重来。


但是如果都是做OA那种常见的数据处理,对数据的理解尚且很浅,还把用户的需求仅仅简化为有一些表格需要录入和查询,不会把真正的业务逻辑写到程序中,只要会一点编程就能开发OA了,这样的公司也从来没有一个产品能够粘住客户。
  • 打赏
  • 举报
回复
比如你继承了GridView,扩展为自己的专业的“工资表”,你无需修改GridView源代码(也不可能去修改人家的DLL)。你可以把工资表放到一个选项卡控件中,这样用户只要翻动到某个部门的选项卡就能加载和处理那个部门的工资表了。人家做选项卡的时候可不知道你的什么工资表,人家只是用GridView测试过了解决了与GridView的不兼容问题而已。

整个设计,不论是对业务数据对象,还是界面组件,都有面向对象的设计的一套办法。
  • 打赏
  • 举报
回复
很简单,比如我们写了一个监控农场中各种植物的程序,于是我们就可以为特定的植物扩展一些“浇水”的代码。那么代码什么风格呢?——面向对象风格。
程序小海 2010-11-14
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 whrspsoft3723 的回复:]

真的杯具啊,我待过的一个公司 ,整个erp系统全是这样搞的。
[/Quote]

同道中人!
whrspsoft3723 2010-11-12
  • 打赏
  • 举报
回复
真的杯具啊,我待过的一个公司 ,整个erp系统全是这样搞的。
CGabriel 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 q461714878 的回复:]
引用 26 楼 jaylongli 的回复:
占用内存的 是变量 不是方法。。。
不太懂,能解释下吗?
[/Quote]

方法是不占用内存的。。。虽然很多人自行想象类实例化的时候会复制一份代码。。。当然那仅仅是他们的臆想。
q461714878 2010-11-09
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 jaylongli 的回复:]
占用内存的 是变量 不是方法。。。
[/Quote] 不太懂,能解释下吗?
wanghui0380 2010-11-08
  • 打赏
  • 举报
回复
我实话我不明白,中国的程序员都是怎么了。

一些完全没必要的讨论的东西,天天在哪里争来吵去地

代码在内存里只有一份,无论他调用多少次。是静态的,还是非静态地,他只有一份代码。变化的只是外部数据,而不是代码。难道你以为你的代码在内存里会发生变化。(除非,那台电脑成了精怪)

所以你在这里讨论啥 静态方法完全就是一个没必要的事情。clr和cpu才不管你是静态还是非静态。无非一个
Call [xxxxx]
Teng_s2000 2010-11-08
  • 打赏
  • 举报
回复
wanghui0380 2010-11-08
  • 打赏
  • 举报
回复
不怎么样,对于clr来说,所有的方法都是静态地

但那是clr不是你。对于你来说如果所有方法都是静态地,那么你可以在任意时间,任意地点,调用任意方法。ok,项目没啥问题,能正常运行。不过嘛盘丝洞是你挖出来滴,那么就请来维护这个盘丝洞好了。
程序小海 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 maddemon 的回复:]

合理的设计才是正道,不要觉得不需要实例化编码起来会很舒服,其实合理的面向对象才是最舒服的
[/Quote]

winform的项目,我在想 会不会 到最后内存 不够用

软件的当在那边……
maddemon 2010-11-08
  • 打赏
  • 举报
回复
合理的设计才是正道,不要觉得不需要实例化编码起来会很舒服,其实合理的面向对象才是最舒服的
Ijingjing 2010-11-08
  • 打赏
  • 举报
回复
那你这个项目肯定做不完了
porschev 2010-11-08
  • 打赏
  • 举报
回复
不见得你就看得出有什么事。。

但如果静态方法多。。。肯定是会占用多一些的资源。。

maiker110 2010-11-08
  • 打赏
  • 举报
回复
一个小型的网站之类的,你可以这样干,但一个大型的公司项目,最好不要,不要为了那么一点点的效率,导致项目的进度,到最后会千疮百孔
phil999 2010-11-08
  • 打赏
  • 举报
回复
这个难讲,似乎不太好
加油馒头 2010-11-08
  • 打赏
  • 举报
回复
占用内存的 是变量 不是方法。。。
viena 2010-11-08
  • 打赏
  • 举报
回复
内存使用上没有不同
不要把静态变量与静态方法搞混了~
程序小海 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 wanghui0380 的回复:]

公司的那人 就是这样 给了个三层的架构,还有一些表的对象

根本就没有扩展,和继承……


这才是问题是实质,OO实际是用来管理和维护的,所以并不是静态方法和非静态方法的区别,而是代码是否有组织。

如果代码组织和划分的很好,而代码编写人员也都自觉按结构层次去调用,那么就算全部静态也没啥问题,早期没有OO的时候,那些前辈都是这么干的。

但是后来的问题是,当代码组织的混乱和划分……
[/Quote]

这样的话, 只要代码组织的好, 写静态与非静态 不是无所谓了吗?
加载更多回复(14)

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧