Avançada
TCC-00.174
Prof.: Anselmo Montenegro
www.ic.uff.br/~anselmo
anselmo@ic.uff.br
Receita de Café:
Receita de Chá:
Código
public class Tea { public class Coffee {
void prepareRecipe() { void prepareRecipe() {
boilWater(); boilWater();
steepTeaBag(); brewCoffeeGrinds();
pourInCup(); pourInCup();
addLemon(); addSugarAndMilk();
} }
public void boilWater() { public void boilWater() {
System.out.println(“Boiling water”); System.out.println(“Boiling water”);
} }
public void steepTeaBag() { public void brewCoffeeGrinds(){
System.out.println(“Steeping the tea”); System.out.println(“Dripping Coffee through filter”);
} }
public void addLemon() { public void pourInCup() {
System.out.println(“Adding Lemon”); System.out.println(“Pouring into cup”);
} }
public void pourInCup() { public void addSugarAndMilk() {
System.out.println(“Pouring into cup”); System.out.println(“Adding Sugar and Milk”);
} }
} }
CaffeineBevarage
prepareRecipe()
boilWater()
pourInCup()
Coffee Tea
prepareRecipe() prepareRecipe()
brewCoffeeGrinds() steepTeaBag()
addSugarAndMilk() addLemon()
Problemas e limitações??
Problemas e limitações??
Receita de Café:
Receita de Chá:
Tem algo em
(1) Ferver um pouco de água comum, será que
(2) Fazer a infusão do chá na água fervendo podemos abstrair?
(3) Servir o chá(bebida) em um chícara
(4) Adicionar limão
Receita de Café:
Receita de Chá:
Adicionar
(1) Ferver um pouco de água condimentos
(2) Fazer a infusão do chá na água fervendo
(3) Servir o chá(bebida) em um chícara
(4) Adicionar limão
void boilWater() {
// implementation
}
void pourInCup() {
// implementation
}
}
Definição
• AbstractClass
• Define operações primitivas abstratas que implementam passos de
um algoritmo.
• Implementa um método template que define o esqueleto de um
algoritmo. O método template chama as operações abstratas.
• ConcreteClass
• Implementa as operações primitivas para realizar passos específicos
do algoritmo
• Diagrama de classes