Паттерн проектирования 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
}
}
- Везде приводится этот switch, но как-то с ним не красиво получается, а если будет 20-30 классов. Как от него избавиться,
- Если мне надо добавить метод, только в один класс (например public void сoll()), он больше ни где не будет нужен. Можно как-то это сделать, не прописывая его в interface Coffee? Как сделано в примере он не доступен.