Паттерн проектирования Factory как добавить метод

Изучаю Паттерн проектирования Factory Вот один из примеров его использования, они практически везде однотипные:

public interface Coffee {
  void grindCoffee();
  void makeCoffee();
  void pourIntoCup();
}
public class Americano implements Coffee {
  public void grindCoffee() {
    System.out.println("перемалываем кофе Americano");
  }
  public void makeCoffee() {
    System.out.println("перемалываем кофе Americano");
  }
  public void pourIntoCup() {
    System.out.println("наливаем кофе Americano");
  }
}
public class CoolCoffe implements Coffee{
  public void grindCoffee() {
    System.out.println("перемалываем кофе CoolCoffe ");
  }
  public void makeCoffee() {
    System.out.println("перемалываем кофе CoolCoffe ");
  }
  public void pourIntoCup() {
    System.out.println("наливаем кофе CoolCoffe ");
  }
  public void сoll() {
    System.out.println("охлаждаем кофе CoolCoffe ");
  }
}
public class MyCoffe {
  public static void main(String[] args) {
    Coffee myCoffee;
    switch(type) {
      Americano:
        myCoffee= new Americano();
      CoolCoffe:
        myCoffee= new Americano();
   }
   ...
   myCoffee.pourIntoCup();
   myCoffee.сoll(); //Error
 }
}
  1. Везде приводится этот switch, но как-то с ним не красиво получается, а если будет 20-30 классов. Как от него избавиться,
  2. Если мне надо добавить метод, только в один класс (например public void сoll()), он больше ни где не будет нужен. Можно как-то это сделать, не прописывая его в interface Coffee? Как сделано в примере он не доступен.

Ответы (0 шт):