Могу ли я использовать Enums в этом сценарии? - PullRequest
0 голосов
/ 30 сентября 2019

Допустим, существует абстрактный класс Flower, который может быть типа SUMMER, SPRING или ALL_SEASONS. Теперь такой цветок, как Фиалка, может быть ЛЕТНИМ ИЛИ ВЕСНЫМ сезоном. Как я могу представить это на Java? Сначала я попытался реализовать это с помощью Enums, но застрял на этом.

Ответы [ 2 ]

2 голосов
/ 30 сентября 2019

Исходя из ваших требований от вашего поста, у вас нет требования в течение трех сезонов. Вместо этого у вас есть требование для «цветущих сезонов». Список "цветущих сезонов" выглядит следующим образом: ЛЕТО, ВЕСНА, SUMMER_AND_SPRING, ANY_SEASON.

Примите во внимание следующее:

  1. Поймите ваши требования.
  2. Постройте решениесоответствует требованиям.

На основании вашего сообщения вы, кажется, выполнили эти шаги в обратном порядке (создали решение, а затем пересмотрели требования).

0 голосов
/ 30 сентября 2019

вам нужно реализовать класс Flower, у которого есть времена года, я реализовал решение, не самое лучшее, но оно раскрывает базовый механизм наследования ООП и перечисления, но оно поможет вам

Во-первых,enum сезона

 public enum Season{
        SUMMER, SPRING, WINTER, AUTUMN;

        public static List<Season> allSeason(){
            return Arrays.asList(values());
        }
    }

следующий абстрактный класс Flower

public abstract class Flower {
    abstract List<Season> seasons();
}

Затем два класса, расширяющих Flower и определяющих поведение сезонов

class Poppy extends Flower{

    @Override
    List<Season> seasons() {
        return Arrays.asList(Season.SPRING, Season.SUMMER);
    }
}

class Anthurium extends Flower{

    @Override
    List<Season> seasons() {
        return Season.allSeason();
    }
}

...