Ecco un esempio ... parecchio terra-terra e sicuramente non utile nella realtà.
codice:public class ProvaDecorator { public static void main(String[] args) { Animale gatto = new Gatto(); gatto.emettiVerso(); System.out.println("------------"); Animale gatto2 = new AnimaleVersoDoppio(gatto); gatto2.emettiVerso(); } } interface Animale { void emettiVerso(); } final class Gatto implements Animale { // Classe final, non estendibile! public void emettiVerso() { System.out.println("miao"); } } class AnimaleVersoDoppio implements Animale { private Animale animale; public AnimaleVersoDoppio(Animale animale) { this.animale = animale; } public void emettiVerso() { animale.emettiVerso(); animale.emettiVerso(); } }



Rispondi quotando