V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhix
V2EX  ›  Java

基于 enum 的单例模式是不是一种反模式?

  •  
  •   zhix · 2017-10-16 18:20:58 +08:00 · 3464 次点击
    这是一个创建于 2624 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我一般习惯用 enum 来实现单例

    enum Singleon {
    	
        INSTANCE;
    }
    

    同样会使用 enum 来实现工具类

    enum Utils {
    
    	;
    }
    

    这样做算不算一种反模式?

    5 条回复    2017-10-19 17:42:22 +08:00
    johnniang
        1
    johnniang  
       2017-10-16 18:24:38 +08:00 via Android
    你应该去反编译一下代码看看 enum 的真身
    zonghua
        2
    zonghua  
       2017-10-16 20:22:35 +08:00 via iPhone
    枚举没了面向对象的一些特性
    flyingghost
        3
    flyingghost  
       2017-10-16 20:32:52 +08:00
    无论技术上可不可行,我觉得和设计初衷、和字面意思、和直觉相违背的 geek 用法都是以可读性 /可维护性为代价的奇技淫巧。
    yidinghe
        5
    yidinghe  
       2017-10-19 17:42:22 +08:00
    反正 enum 不是这么用的,所以是反模式。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2652 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:17 · PVG 19:17 · LAX 03:17 · JFK 06:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.