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

    −52

    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
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    public static class ItemInfo
    	{
    		static String _type;
    		static String _collor;
    		static int _encnant;
    		static int _fail;
    		static int _drop;
    		static int _price;
    		
    		static void getInfo(int itemId)
    		{
    			switch(itemId)
    			{
    				case 11561:
    				case 13159:
    				case 13173:
    				case 13160:
    				case 13168:
    				case 13161:
    				case 13169:
    				case 13162:
    				case 13170:
    				case 13163:
    				case 13171:
    				case 15646:
    				case 15647:
    					_type = "[Необычный предмет]";
    					_collor = "008000";
    					_encnant = 50;
    					_fail = 0;
    					_drop = 0;
    					_price = 1000;
    					break;
    				case 12561:
    				case 14159:
    				case 14173:
    				case 14160:
    				case 14168:
    				case 14161:
    				case 14169:
    				case 14162:
    				case 14170:
    				case 14163:
    				case 14171:
    				case 16646:
    				case 16647:				
    					_type = "[Редкий предмет]";
    					_collor = "4169E1";
    					_encnant = 40;
    					_fail = 0;
    					_drop = 0;
    					_price = 2000;
    					break;
    			}
    		}
    		
    		public static String getType(int itemId)
    		{
    			getInfo(itemId);
    			return _type;
    		}
    		
    		public static String getCollor(int itemId)
    		{
    			getInfo(itemId);
    			return _collor;
    		}
    		
    		public static int getEncnant(int itemId)
    		{
    			getInfo(itemId);
    			return _encnant;
    		}
    		
    		public static int getFail(int itemId)
    		{
    			getInfo(itemId);
    			return _fail;
    		}
    		
    		public static int getDrop(int itemId)
    		{
    			getInfo(itemId);
    			return _drop;
    		}	
    		
    		public static int getPrice(int itemId)
    		{
    			getInfo(itemId);
    			return _price;
    		}
    	}

    Enum? Нет.

    Запостил: MisterMo, 07 Сентября 2015

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

    • цифры наглядней
      Ответить
    • милотаа
      Ответить
    • google рекомендует не использовать enum - лишняя память.
      смотрите их best practics там разжевано как надо и почему. И вообще что можно понять из декомпиленного кода.
      Ответить
      • Поделись ссылкой конкретно по emun если не составит труда =)
        Ответить
        • Эта рекомендация протухла года три назад.
          Ответить
          • 3 года назад вышла java 8. И что в ней появилось нового?
            Ответить
            • Причём здесь java 8? Раньше в android performance tips был раздел о том, что нужно предпочитать енумам числовые константы, но он давно пропал
              http://developer.android.com/training/articles/perf-tips.html


              UPD:
              Наврал, раздел просто переехал в другое место
              http://developer.android.com/training/articles/memory.html
              Enums often require more than twice as much memory as static constants. You should strictly avoid using enums on Android.
              Ответить
              • Так это специфика андроида?
                Ответить
              • >> что нужно предпочитать енумам числовые константы

                Товарищи, но ведь это писец. То есть проще самому запилить статик класс и напихать туда констант и это будет быстрее чем енум? Тогда нахрен нужны енумы? Что за жизнь ведут разработчики джавы?
                Ответить
              • А кого вообще волнует сколько занимает памяти что-то пока это не в массиве?
                Ответить
              • > twice as much memory as static constants
                И это при том, что рядом всяко лежат картинки в xxxhdpi...
                Ответить
                • >memory
                  teh DRAM же, а картинки в стораже
                  Ответить
                  • > а картинки в стораже
                    Ну ты же не будешь каждый фрейм картинку мапать с флешки, декомпрессить и выбрасывать?

                    Какое-то время этим картинкам придётся пожить в RAM'е и заслонить собой все микрооптимизации с енумами.
                    Ответить
                    • drawable не нужны

                      а ремарка про микрооптимизацию радует моего внутреннего байтоёба

                      всё правильно зделали
                      Ответить
              • >Enums often require more than twice as much memory as static constants. You should strictly avoid using enums on Android.
                Ну охуеть теперь, целых двадцать килобайт вместо десяти, на всю аппликуху!
                Смачный ведроотсос.
                Ответить
                • Там лимит кучи пиздец маленький. 16-64 метра, емнип, если не просить в манифесте большую кучу. Хотя 20кб даже при такой куче - экономия на спичках.
                  Ответить
                  • Пиздец был, когда я сто лет тому назад пытался запустить J2ME-приложения на Нокле. Там нужно было уместиться то ли в 128 килобайт, то ли в ещё более узкие рамки. Для сравнения: на более дешёвом Siemens C60 было примерно полмегабайта кучи, на Siemens C75 того же ценового диапазона — полтора мегабайта.
                    Ответить
    • Это называется "Хранение базы данных в исходниках"
      Ответить

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