Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.83 KB | None | 0 0
  1. // can this code be "simplified "
  2.  
  3. interface PastryVisitor {
  4.     void visitBeignet(Beignet beignet);
  5.     void visitCruller(Cruller cruller);
  6. }
  7.  
  8. abstract class Pastry {
  9.     abstract void accept(PastryVisitor visitor);
  10. }
  11.  
  12. class Beignet extends Pastry {
  13.     @Override
  14.     void accept(PastryVisitor visitor) {
  15.         visitor.visitBeignet(this);
  16.     }
  17. }
  18.  
  19. class Cruller extends Pastry {
  20.     @Override
  21.     void accept(PastryVisitor visitor) {
  22.         visitor.visitCruller(this);
  23.     }
  24. }
  25.  
  26. // into this?
  27.  
  28. interface PastryVisitor {
  29.     void visit(Beignet beignet);
  30.     void visit(Cruller cruller);
  31. }
  32.  
  33. class Pastry {
  34.     void accept(PastryVisitor visitor){
  35.         visitor.visit(this); // will "this" automatically deduce the type?
  36.     }
  37. }
  38.  
  39. class Beignet extends Pastry {
  40. }
  41.  
  42. class Cruller extends Pastry {
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement