1. Java / Говнокод #2941

    +72.4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    interface Editor extends Window {
    
        /** Get edited entity  */
        Entity getItem();
    
        /**
         * Set parent datasource to commit into this datasource instead of database.
         * This method must be followed by {@link #setItem(com.contora.package.core.entity.Entity)}
         */
        void setParentDs(Datasource parentDs);
    
        /** Set edited entity. Invoked by the framework on opening the window. */
        void setItem(Entity item);
    
        /** Check validity by invoking validators on all components which support them */
        boolean isValid();
    
        /** Check validity by invoking validators on all components which support them */
        void validate() throws ValidationException;
    
        /** Validate and commit changes */
        boolean commit();
    
        /** Commit changes with optional validating */
        boolean commit(boolean validate);
    
        /**
         * Validate, commit and close if commit was successful.
         * Passes {@link #COMMIT_ACTION_ID} to associated {@link CloseListener}s
         */
        void commitAndClose();
    }
    
    public class PickupRegionLookuper extends AbstractLookup implements Editor{
        public PickupRegionLookuper(IFrame frame) {
            super(frame);
        }
    
        @Override
        protected void init(Map<String, Object> params) {
           //Здесь была какая то логика
        }
    
        @Override
        public Entity getItem() {
            return null;  
        }
    
        @Override
        public void setParentDs(Datasource parentDs) {
        }
    
        @Override
        public void setItem(Entity item) {
        }
    
        @Override
        public boolean isValid() {
            return false;
        }
    
        @Override
        public void validate() throws ValidationException {
        }
    
        @Override
        public boolean commit() {
            return false;
        }
    
        @Override
        public boolean commit(boolean validate) {
            return false;
        }
    
        @Override
        public void commitAndClose() {
        }
    }

    Встретилось в одном java-файле. Класс реализует интерфейс, определенный в том же файле, причем интерфейс package-private (!). При этом ни одного метода оттуда реально не используется. К тому же этот интерфейс человек перенес из другого класса, где тот был как раз public.

    Запостил: tinhol, 06 Апреля 2010

    Комментарии (5) RSS

    • меня ещё бесит isValid + validate. одного мало?
      Ответить
      • Один бросает исключение другой нет. В принципе норма.
        Ответить
        • порочная норма ;) из тех, когда никто уже не помнит, зачем оно вообще, но продолжают лепить

          так спокойнее )
          Ответить
    • мож чтоб сузить область использования интерфейса, типа показать что в будущем должен использоваться только в пакете?
      хотя уже как-то параноидально, да
      Ответить
    • vanished
      Ответить

    Добавить комментарий