首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Enums中的业务逻辑?

Enums中的业务逻辑?
EN

Stack Overflow用户
提问于 2010-07-31 01:15:58
回答 6查看 4.9K关注 0票数 9

将任何类型的业务逻辑放在Enums中是否被认为是良好的实践?逻辑不是很强,但更像是方便实用的方法。例如:

代码语言:javascript
复制
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;
 }

}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-07-31 01:18:45

IMHO,这使您能够将相关信息放在可能使用和搜索的地方。枚举没有理由不是具有实际责任的实际类。

如果这可以让你写出更简单的代码和SOLID代码,为什么不呢?

票数 19
EN

Stack Overflow用户

发布于 2010-07-31 03:37:52

是的,我认为这是一个好主意。但是,我认为使用实例方法可以更简洁地实现它:

代码语言:javascript
复制
public enum OrderStatus {

 OPEN, OPEN_WITH_RESTRICTIONS, OPEN_TEMPORARY, 
 CLOSED {
   @Override isOpen() { return false; }
 };

 public boolean isOpen()
 { 
   return true;
 }
}
票数 10
EN

Stack Overflow用户

发布于 2010-07-31 01:24:09

我经常对单例实例使用枚举。因此,它们几乎只包含业务逻辑。作为内嵌扩展Enum的类,它们甚至可以实现接口。

我只会考虑使用Enums,如果它适合枚举值,即业务逻辑与实例紧密耦合。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3373847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档