类爆炸问题,对维护也是恶梦?
原意在ERP项目中有设计一个工序类用來描述工序:
public Process
{
public string ProcessNo
{
get{}
set{}
}
public string ProcessDesc
{
get{}
set{}
}
//宽Size2 属性
public virtual float GetSize2();
public virtual void SetSize2(float _size2);
}
如下图:
----------------------------------------------------------------
工序号 工序名称 Size2求法 说明
----------------------------------------------------------------
91 包裝 F_GetPack(Productobj obj,int X) 成品尺寸宽
95 粘合 F_GetSize2(layoutobj obj) 排版尺寸的宽
2A 过油 F_GetSize(int size1,int size2) 用户输入的值得到
.......................
99 XX F_PA() ...........
但是发现实际情况下是公司有几百个不同的工序,最主要有些工序同样的属性如(宽),不同的名字或在不同的产品时会有不同的方法求得(但不是所有的都不同)。我的问题是:
如不同的工序用继承的方法,不同的子类重写不同的方案,会产生上百个工序类,而且将来工序会因需要自动增加,显然会产生类爆炸问题,对维护也是恶梦!
如不用继承的方法,转而只用写成一个类中,用不同的函数名不同的方式,显多也是太多函数,且一样不能维护。
请问各位有什么好的设计类的方案?