Advertisement
kajacx

jokes

Sep 11th, 2013
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.38 KB | None | 0 0
  1. package test;
  2.  
  3. public class SO {
  4.  
  5.     public static void main(String[] args) {
  6.         JokePrinter basic = new JokePrinter(new BasicJokeGenerator());
  7.         basic.printJoke("testTopic");
  8.         basic.printJoke("otherTopic");
  9.        
  10.         JokePrinter good = new JokePrinter(new GoodJokeGenerator());
  11.         good.printJoke("testTopic");
  12.         good.printJoke("otherTopic");
  13.     }
  14. }
  15.  
  16.  
  17. class JokePrinter {
  18.     private JokeGenerator jg;
  19.  
  20.     public JokePrinter(JokeGenerator jg) {
  21.         this.jg = jg;
  22.     }
  23.    
  24.     public void printJoke(String title) {
  25.         System.out.println(jg.generateJoke(title));
  26.     }
  27. }
  28.  
  29. interface JokeGenerator {
  30.     public String generateJoke(String topic);
  31. }
  32.  
  33. class BasicJokeGenerator implements JokeGenerator {
  34.  
  35.     @Override
  36.     public String generateJoke(String topic) {
  37.         if(topic.equals("testTopic")) {
  38.             //dont use == on strings!
  39.             return "Some lame test joke";
  40.         } else {
  41.             return "Default lame joke";
  42.         }
  43.     }
  44.    
  45. }
  46.  
  47. class GoodJokeGenerator extends BasicJokeGenerator {
  48.    
  49.     @Override
  50.     public String generateJoke(String title) {
  51.         String joke = super.generateJoke(title);
  52.         joke = joke.replace("lame", "good");
  53.         return joke;
  54.     }
  55. }
  56.  
  57. /*
  58.  * prints:
  59. Some lame test joke
  60. Default lame joke
  61. Some good test joke
  62. Default good joke
  63.  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement