日期:2014-05-17  浏览次数:20913 次

是用类还是结构体定义合适?
乍看题目比较简单,但是我在实际运用中出现难题,特来和大家交流下哈。
我想做个工具软件,专门管理和统计机房的设备配置信息。大致的需求如下:
公司有多个机房,每个机房有服务器(不同品牌)、交换机、路由器、网关等设备。每个机房这些东西差不多。
我想通过这个工具软件能对这些设备管理和维护,比如记录IP、性能配置、使用年限。我不太想用数据库记录,直接建立内存数据,操作快捷方便。
因此,我首先想到类,如定义机房类,机房类里面再引用服务器类、交换机类等等,而服务器类又引用了IP地址、网络端口、安装软件等等
但是一想,这样定义类,多个机房怎么办?每个服务器下有相同的属性配置怎么办?他们的值会改变的。所以想用结构体,发现比较麻烦。各位有什么好的建议。

------解决方案--------------------
引用:
Quote: 引用:

你没有分清楚类和对象,多个机房只是多个机房类的对象而已,不需要定义多个机房类。

这个我明白,我只是定义一个机房类,多个机房就是对应的对象,但是每个对象的属性值不一样,我一旦更改了任意一个对象的值,其他机房对象的对应的属性将更改。

你希望更改还是不希望更改?

如果希望更改,有两个办法,让这个属性指向一个共享的变量,或者通过事件广播。
------解决方案--------------------
你需要为每个对象去new一个新的。

比如:
机房 dc1 = new 机房();
机房 dc2 = new 机房();
服务器 srv1 = new 服务器();
服务器 srv2 = new 服务器();
dc1.服务器.Add(srv1);
dc2.服务器.Add(srv2);
这样你修改dc1.服务器就不会影响dc2了。