怎么消灭全局变量?(100分)

  • 主题发起人 主题发起人 bugcool
  • 开始时间 开始时间
B

bugcool

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,有人说全局变量是最不好的编程习惯之一,有什么好的办法消灭它?
还有,如果不用全局变量,怎么保存程序中的状态变量那?
 
消灭? 不可能,除非程序不运行了
 
不用全局变量,用个全局对象(自定义类)比较好。
安全性、可靠性都高,最后也好释放掉。
 
不是不好的习惯,是逼不得已才用全局变量

要消灭它可以请米国鬼子用飞毛腿轰了它,哈哈。
 
定义property代替
 
我的做法是将全局变量做成一个类,
然后通过读写INI文件来保存变量,
当需要的时候就创建对象,读对象
属性来获得变量值,用完了就释放
对象。我感觉这样是消灭了全局变量,
但是这样频繁地创建、释放对象好么?,
 
小东西没必要消灭,大东西就要好好规划了
 
全局变量未必就是不好的习惯。
不会武功耍大刀砍伤自己也是可能的。
如果杜绝全局变量,呵呵,你就没法写程序了。
Applicatiion是全局变量,Screen是全局变量。
你的窗体文件也要为该窗体声明一个全局的窗体类变量。
呵呵
 
有必要吗?
 
大的来说系统要有N多模块构成,小的说来一个Application由众多unit构成,除非

彼此间不交互要,那还叫程序?全局变量封装在类或者一个单元里,只能说尽量减少

全局变量的个数,用的过多这是不好的编程习惯,不过有时候似乎经不住编程带来的

方便的诱惑!
 
使用全局对象而不是全局变量。 让全局变量成为全局对象的属性。
这需要你在设计和面向对象上有更多的理解。

To:wr960204
->Applicatiion是全局变量,Screen是全局变量。
应当是全局对象才对吧。
 
To blue_morning
Application其实是一个类的变量,它指向内存中的对象。
类就是数据类型,对象就是变量。
 
有必要吗?也没占多大的地方。
 
在Private中定义!!!!在每次调用时在前面加上类名!!(不过挺累的)
 
别的语言还好一点,象c/c++还可以用static
但pascal就免了,你看delphi vcl源码,定义有大量的全局变量,甚至用一个单元来
做这种事情.
 
最好把所有的全局变量放到一个单元里,也可以用全局类类代替
 
不可不用,尽量少用,多用类。
 
做一个全局的类吧
所有的全局变量都写成这个类的属性
和私有变量
用Get和Set方法来封装访问
 
有必要吗???用的滥(烂)当然不是好事,关键在于用的人
我想全局变量还比goto要好吧,但是goto在C#中还保留着用呢??
你想想[?]
 
后退
顶部