可以说我有一个这样的枚举表:
id name desc
0 Normal Normal shipping
1 Fragile Fragile, handle with care
我在订单上有一些商业规则
double ShippingPrice(Product p)
{
if (p.ShippingType == 1) // Fragile
return GetFragileShippingPrice(p);
else
return GetNormalShippingPrice(p);
}
也许不是最好的例子。但关键是,如何使“p.ShippingType == 1”部分可读。当下一个人来维护此代码时,他必须找到生产数据库,并查询每个业务规则的表以了解它们的作用。
我考虑过在代码中创建一个枚举只是复制数据库中的数据,但这似乎也不是一个好的解决方案。