将任何类型的业务逻辑放在Enums中是否被认为是良好的实践?逻辑不是很强,但更像是方便实用的方法。例如:
public enum OrderStatus {
OPEN, OPEN_WITH_RESTRICTIONS, OPEN_TEMPORARY, CLOSED;
public static boolean isOpenStatus(OrderStatus sts) {
return sts == OPEN || sts == OPEN_WITH_RESTRICTIONS || sts == OPEN_TEMPORARY;
}
}发布于 2010-07-31 01:18:45
IMHO,这使您能够将相关信息放在可能使用和搜索的地方。枚举没有理由不是具有实际责任的实际类。
如果这可以让你写出更简单的代码和SOLID代码,为什么不呢?
发布于 2010-07-31 03:37:52
是的,我认为这是一个好主意。但是,我认为使用实例方法可以更简洁地实现它:
public enum OrderStatus {
OPEN, OPEN_WITH_RESTRICTIONS, OPEN_TEMPORARY,
CLOSED {
@Override isOpen() { return false; }
};
public boolean isOpen()
{
return true;
}
}发布于 2010-07-31 01:24:09
我经常对单例实例使用枚举。因此,它们几乎只包含业务逻辑。作为内嵌扩展Enum的类,它们甚至可以实现接口。
我只会考虑使用Enums,如果它适合枚举值,即业务逻辑与实例紧密耦合。
https://stackoverflow.com/questions/3373847
复制相似问题