julia_v_iluhina

Untitled

Dec 6th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.53 KB | None | 0 0
  1. public enum TaskType {
  2.         ACTIVE("a", "b", "c"), COMPLETED("a", "b", "c");
  3.  
  4.         String[] taskTexts;
  5.  
  6.         TaskType(String... taskTexts) {
  7.             this.taskTexts = taskTexts;
  8.         }
  9.  
  10.         @Override
  11.         public String toString() {
  12.             switch (this) {
  13.                 case ACTIVE:
  14.                     String results = "localStorage.setItem('todos-troopjs', '[";
  15.                 for (String text : taskTexts) {
  16.                     results = results + "{\"completed\":false,\"title\":\"" + text + "\"}, ";
  17.                 }
  18.                 if (taskTexts.length > 0) {
  19.                     results = results.substring(0, (results.length() - 2));
  20.                 }
  21.                 results = results + "]')";
  22.                 return results;
  23.  
  24.                 case COMPLETED:
  25.                     results = "localStorage.setItem('todos-troopjs', '[";
  26.                 for (String text : taskTexts) {
  27.                     results = results + "{\"completed\":true,\"title\":\"" + text + "\"}, ";
  28.                 }
  29.                 if (taskTexts.length > 0) {
  30.                     results = results.substring(0, (results.length() - 2));
  31.                 }
  32.                 results = results + "]')";
  33.                 return results;
  34.                 default:
  35.                     throw new AssertionError("Unknown operations " + this);
  36.             }
  37.         }
  38. }
  39. /*
  40.     Достаточно странный код получился
  41.  
  42.     До начала переделки кода - приведи мне примеры
  43.         как ты этот код проверял и использовал
  44.         просто даже интересно)
  45.  
  46.     Пример из жизни )
  47.         Например, есть у нас разные фрукты) - яблоки / груши / и прочие разные
  48.  
  49.         У каждого фрукта есть свойство - спелость
  50.             фрукт может быть спелым и зеленым(не спелым)
  51.  
  52.         Получается - что наш фрукт характеризуют 2 свойства - его название и его спелость
  53.  
  54.         И нам например - на начало задачи надо сказать
  55.             дано
  56.                 спелая груша
  57.                 зеленое яблоко
  58.                 спелый апельсин
  59.  
  60.                 или
  61.  
  62.                 спелые фрукты - груша, яблоко, груша
  63.  
  64.         Заметь - мы это говорили - когда рассуждали в терминах - что нам дано
  65.         и описывали фрукт с помощью двух НЕЗАВИСИМЫХ друг от друга свойств - спелость и название
  66.  
  67.         а не так
  68.                 Есть у нас понятие спелость фруктов
  69.                     спелость фруктов "спелый" = относится только к набору яблоко + груша + апельсин
  70.                     спелость фруктов "зеленый" = относится только к набору яблоко + груша + апельсин
  71.  
  72.                 т е само понятие "спелость фруктов" - включает в себя структуры, которые вообще говоря
  73.                 никак не могут быть ни подчиненными, ни зависимыми
  74.  
  75.                 ну и описываем мы "спелость фруктов" - уже как что-то, включающее в себя вот эти структуры
  76.  
  77.     Есть такой важный принцип - Single Responsibility Principle - погугли
  78.  
  79.     Тип таски - это только тип таски, и ничего более.
  80.         Он ничего не знает о тасках, никак ими не управляет
  81.         Тип таски - такая же часть описания таски, как ее наименование
  82.         И только
  83.  
  84.         Как максимум - тип таски благодаря методу toString() - может вернуть свое текстовое представление
  85.         А это - "true" или "false"
  86.         Ну или вот так -  \"completed\":true" или \"completed\":false
  87.         При этом метод  toString() - должен быть простым максимально. Тут уже никакой логики развитой быть не должно.
  88.         Я писала тебе - не обязательно это делать
  89.  
  90.         Пока я категорически настаиваю - чтоб toString() ты не реализовывал.
  91.         Возможно, потом по финишу это сделаем
  92.         Пока - рано
  93.  
  94.         Т к в этих технических деталях - теряется цель
  95.  
  96.     Тексты тасок - никакого отношения не имеют к типу таски
  97.         это отдельные независимые от типа таски - данные о таске
  98.         и потому они никак не могут быть подчиненными относительно типа таски
  99.  
  100.         TaskType - не должен оперировать данными о текстах таски
  101.  
  102.  
  103.  
  104.      Как мы договаривались с тобой ранее - нужно разработать метод c параметрами
  105.      (TaskType taskType, String ... taskTexts)
  106.  
  107.      При его реализации - не вызывай ранее разработанные методы (используй их как пример, не более)
  108.      Потом ранее разработанные методы просто уйдут - пока мы их используем как пример
  109.      Но в итоге - конечно, дублирования не будет. Но это потом
  110.  
  111.      Как решение - предоставляй линку на репозиторий
  112.      В качестве промежуточного решения - Я хочу видеть весь проект
  113.      а в нем - и разработанный метод, и тест-метод - в котором ты работал с ним
  114.      То, как мы делали, созваниваясь по скайпу
  115. */
Advertisement
Add Comment
Please, Sign In to add comment