小弟我看了很多软件,貌似发现一种共同的设计思想,为什么软件都要采用这种思想呢?帮忙分析
我看了很多软件,貌似发现一种共同的设计思想,为什么软件都要采用这种思想呢?帮忙分析
很多软件设计都采用了一些全局的数组,数组里面保存结构,然后用来作全局管理
------解决方案--------------------
当作通用库用了,好多地方要用到
------解决方案--------------------
全局数据?那不是好的设计。C语言吧?
应该用接口,或者包含虚函数的类,或者是保存指针的结构,这是软件复用的基础,
也是COM的基本思想。
------解决方案--------------------
个人讨厌全局的定义。会加大软件的耦合度,难于维护。
而且各种变量的意义也令人眼花缭乱
------解决方案--------------------
lz看了哪些软件说来听听?
------解决方案--------------------
一般就C语言才会这样干,连C++都很少这样干
------解决方案--------------------
工控嵌入式这样做的多一些
------解决方案--------------------
自己锁好就没事,很多是出于数据完整性的考虑
问个简单的,你认为环境变量是好东西吗?什么都有两面性,有点扯淡了,呵呵呵
------解决方案--------------------
C++很少这样的吧。全局的话,对象生命期比main函数的还长。。。
*看过mfc的,有个theApp的应用程序对象。全局的(现在用mfc的还有多少?);
*dll的工程里可以包含“全局”对象,用来进行dll生命期管理。不过那种dll是动态加载的。。。那些“全局”对象根本不是全局的。
------解决方案--------------------
谁说内存不是一个全局二进制数组?
------解决方案--------------------
典型C语言的做法
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
全局变量很正常, 一般常见的都是static, 或者与全局信号处理相关的标记变量, 只要不是提供给用户的接口都应该static,至于是否全局看需求,提供给用户的才extern。
------解决方案--------------------
大一点的软件在设计时是应该尽力减少甚至避免使用全局变量,因为耦合度太高,一旦出现问题很难定位。
不过像C语言开发的东西,全局变量往往是无法避免的,因为C语言里没有更好的做法来替代它。
在面向对象的语言里还是大量使用全局变量的话,就不合适了。这个裸露在外无处不在的东西在带来方便的同时也会带来无尽麻烦。
那啥,原始部落里裸女到处走没关系,现代都市里这个就不可以了。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
一个软件系统是一个整体,“全局”这个概念,用来表示整体自然而然。一般少不了要用到一些全局调控时用的数据,全局变量用来存储全局数据在这里显得方便快捷。但这也是全局变量的缺点:对它的非预期修改也"很方便快捷"——而它的作用决定了这样的后果:一旦它出现异常,整个系统很可能崩溃。
所以全局数据的管理是要费心思的。但是全局变量总是还能起到作用,所以用的地方不少
很多软件设计都采用了一些全局的数组,数组里面保存结构,然后用来作全局管理
------解决方案--------------------
当作通用库用了,好多地方要用到
------解决方案--------------------
全局数据?那不是好的设计。C语言吧?
应该用接口,或者包含虚函数的类,或者是保存指针的结构,这是软件复用的基础,
也是COM的基本思想。
------解决方案--------------------
个人讨厌全局的定义。会加大软件的耦合度,难于维护。
而且各种变量的意义也令人眼花缭乱
------解决方案--------------------
lz看了哪些软件说来听听?
------解决方案--------------------
一般就C语言才会这样干,连C++都很少这样干
------解决方案--------------------
工控嵌入式这样做的多一些
------解决方案--------------------
自己锁好就没事,很多是出于数据完整性的考虑
问个简单的,你认为环境变量是好东西吗?什么都有两面性,有点扯淡了,呵呵呵
------解决方案--------------------
C++很少这样的吧。全局的话,对象生命期比main函数的还长。。。
*看过mfc的,有个theApp的应用程序对象。全局的(现在用mfc的还有多少?);
*dll的工程里可以包含“全局”对象,用来进行dll生命期管理。不过那种dll是动态加载的。。。那些“全局”对象根本不是全局的。
------解决方案--------------------
谁说内存不是一个全局二进制数组?
------解决方案--------------------
典型C语言的做法
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
全局变量很正常, 一般常见的都是static, 或者与全局信号处理相关的标记变量, 只要不是提供给用户的接口都应该static,至于是否全局看需求,提供给用户的才extern。
------解决方案--------------------
大一点的软件在设计时是应该尽力减少甚至避免使用全局变量,因为耦合度太高,一旦出现问题很难定位。
不过像C语言开发的东西,全局变量往往是无法避免的,因为C语言里没有更好的做法来替代它。
在面向对象的语言里还是大量使用全局变量的话,就不合适了。这个裸露在外无处不在的东西在带来方便的同时也会带来无尽麻烦。
那啥,原始部落里裸女到处走没关系,现代都市里这个就不可以了。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
一个软件系统是一个整体,“全局”这个概念,用来表示整体自然而然。一般少不了要用到一些全局调控时用的数据,全局变量用来存储全局数据在这里显得方便快捷。但这也是全局变量的缺点:对它的非预期修改也"很方便快捷"——而它的作用决定了这样的后果:一旦它出现异常,整个系统很可能崩溃。
所以全局数据的管理是要费心思的。但是全局变量总是还能起到作用,所以用的地方不少