(Created page with "Este exercício saiu no teste de 2012/01/30. == Problema == Considere o seguinte programa em Java: <java5> public class Chicken { private Stomach _stomach = new Hungry(); p...") |
(→Problema) |
||
Line 41: | Line 41: | ||
</java5> | </java5> | ||
− | + | # Que resultado se obtém quando se executa o seguinte programa? (represente mudanças de linha com '''\n''') | |
+ | # Que padrão de desenho é usado no programa? | ||
+ | |||
+ | == Solução == | ||
+ | |||
+ | O resultado obtido é o seguinte (trivial): | ||
Hmmm...\nI'm hungry!!\nEating...\nHmmm...\nI'm sleepy!!\nZzZz...\nHmmm...\nI'm hungry!!\nI'm too hungry to sleep!! | Hmmm...\nI'm hungry!!\nEating...\nHmmm...\nI'm sleepy!!\nZzZz...\nHmmm...\nI'm hungry!!\nI'm too hungry to sleep!! | ||
− | '' | + | O pradrão usado é o ''Strategy'' (corresponde à delegação de comportamento no conceito '''Stomach'''). |
− | |||
− | |||
[[category:Ensino]] | [[category:Ensino]] |
Este exercício saiu no teste de 2012/01/30.
Considere o seguinte programa em Java: <java5> public class Chicken {
private Stomach _stomach = new Hungry(); public void eat() { _stomach.eat(); } public void sleep() { _stomach.sleep(); } public void setMood(Stomach stomach) { _stomach = stomach; }
}
public abstract class Stomach {
protected Stomach() { System.out.println("Hmmm..."); } public void eat() { System.out.println("..."); } public void sleep() { System.out.println("..."); }
}
public class Hungry extends Stomach {
public Hungry() { System.out.println("I'm hungry!!"); } public void eat() { System.out.println("Eating..."); } public void sleep() { System.out.println("I'm too hungry to sleep!!"); }
}
public class Sated extends Stomach {
public Sated() { System.out.println("I'm sleepy!!"); } public void eat() { System.out.println("I'm not hungry..."); } public void sleep() { System.out.println("ZzZz..."); }
}
public class Farm {
public static void main(String args[]) { Chicken chicken = new Chicken(); chicken.eat(); chicken.setMood(new Sated()); chicken.sleep(); chicken.setMood(new Hungry()); chicken.sleep(); }
} </java5>
O resultado obtido é o seguinte (trivial):
Hmmm...\nI'm hungry!!\nEating...\nHmmm...\nI'm sleepy!!\nZzZz...\nHmmm...\nI'm hungry!!\nI'm too hungry to sleep!!
O pradrão usado é o Strategy (corresponde à delegação de comportamento no conceito Stomach).