问题描述
各位大侠好,现在有一个关于建立实体的难题:业务逻辑如下:炼钢厂连铸机有3个段:5段、6段、7段,每个段有如下数据(压力、位移、电流)需要表示:压力:压力又分为A口压力、B口压力位移:位移又分为缸1位移、缸2位移、缸3位移、缸4位移电流:电流又分为上辊电流、下辊电流那么5段需要表示的数据就有:5段上辊电流、5段下辊电流、5段1缸位移、5段2缸位移、5段3缸位移、5段4缸位移、5段A口压力、5段B口压力请问这些个实体类怎么建立啊,头痛死我了!
解决方案
解决方案二:
sf
解决方案三:
枚举吧
解决方案四:
写一个接口,再用工厂模式.
解决方案五:
3段.压力.A口压力
解决方案六:
各位大侠,能不能讲得清楚点,小弟C#与设计模式学得确实不咋的呢,谢谢!
解决方案七:
不太明白LZ的意思我觉得不就是这么多个属性吗5段上辊电流一个5段下辊电流一个。。。也可一把某一类型的做成结构让属性对应这个结构
解决方案八:
写一个方法,里面的属性就是那电呀什么的,传递参数(几段)
解决方案九:
也没明白,分为5,6,7段的连铸机不都是连铸机吗?这些实体的属性都是一样的,最多再加一个表示在哪个段的属性,也不算复杂吧?还是我没看明白?
解决方案十:
用抽象工厂
解决方案十一:
这么简单用得着工厂吗...一个类...4个属性+4个枚举...
解决方案十二:
你说的还没有用工厂简单呢
解决方案十三:
将所有的电压,电流,位移都做为属性就可以了
解决方案十四:
是太简单了还是我没看明白?enum压力{}enum位移{}enum电流{}class5段连铸机{压力m_压力;位移m_位移;电流m_电流;}
解决方案十五:
enum?那数据存在哪里?两层四个抽象类,连铸机,压力,位移,电流abstractclass连铸机{压力压力;位移位移;电流电流;通用属性;}class5段连铸机:连铸机class6段连铸机:连铸机class7段连铸机:连铸机
压力,位移,电流同上
解决方案:
有兴趣就在写个工厂
解决方案:
我来学习工厂模式的根据我的理解压力:压力又分为A口压力、B口压力位移:位移又分为缸1位移、缸2位移、缸3位移、缸4位移电流:电流又分为上辊电流、下辊电流可以做成3个结构(或者枚举?我不太熟悉枚举)段,这个做类,里面有上面的结构欢迎讨论阿
解决方案:
mark
解决方案:
谢谢各位!可能是我写得不够详细啦,不好意思!其实是这样的,我这个系统是一台连铸机的监控程序,一台连铸机分3个段组成:5、6、7段(567是编号),我们可以把这个段看作是连铸机的一个组成部份,每一个段有单独的上辊电流、下辊电流等实时信号我这个程序其中一个功能就是采集这些电流、压力等信号并进行处理
解决方案:
刚才我想到了使用单件模式,在整个系统的运行过程中始终只一个实例,对于段这个类来说还是可以的,但是电流、压力就不合适了如果电流、压力等类也使用单件模式的话,那么5、6、7段的电流、压力也就一样的了,但是事实却是567段的电流、压力是不一致的!想想办法解决吧!!!
解决方案:
struct电流{名称;值;}class段{名称;电流[];压力[];位移[];}class连铸机{段[];}
解决方案:
我的最终解决方案:将电流、压力、位移等设置为实体类,利用单件模式原理将这三个实体类设置为只能返回三个实例,三个实例最终对应为三个段(567段)。然后用单件模式创建567段三个类,将电流、压力、位移作为5、6、7段的属性,然后将567段作为连铸机的属性。我这里我还有一点没有想明白:如果用我这个方法设计的话,好像不能创建父类:段,然后567段继承父类:段
解决方案:
真的这么麻烦么?class连铸机{段5;段6;段7;}class段{//电流//压力//位移}