Java设计模式透析之 —— 模板方法(Template Method)

时间:2023-02-08 19:57:51

今天你还是像往常一样来上班,一如既往地開始了你的编程工作。

项目经理告诉你,今天想在server端添加一个新功能。希望写一个方法。能对Book对象进行处理。将Book对象的全部字段以XML格式进行包装。这样以后能够方便与client进行交互。而且在包装開始前和结束后要打印日志,这样方便调试和问题定位。

没问题!你认为这个功能简直是小菜一碟,很自信地開始写起代码。

Book对象代码例如以下:

[java] view
plain
copy
  1. public class Book {
  2. private String bookName;
  3. private int pages;
  4. private double price;
  5. private String author;
  6. private String isbn;
  7. public String getBookName() {
  8. return bookName;
  9. }
  10. public void setBookName(String bookName) {
  11. this.bookName = bookName;
  12. }
  13. public int getPages() {
  14. return pages;
  15. }
  16. public void setPages(int pages) {
  17. this.pages = pages;
  18. }
  19. public double getPrice() {
  20. return price;
  21. }
  22. public void setPrice(double price) {
  23. this.price = price;
  24. }
  25. public String getAuthor() {
  26. return author;
  27. }
  28. public void setAuthor(String author) {
  29. this.author = author;
  30. }
  31. public String getIsbn() {
  32. return isbn;
  33. }
  34. public void setIsbn(String isbn) {
  35. this.isbn = isbn;
  36. }
  37. }

然后写一个类专门用于将Book对象包装成XML格式:

[java] view
plain
copy
  1. public class Formatter {
  2. public String formatBook(Book book) {
  3. System.out.println("format begins");
  4. String result = "";
  5. result += "<book_name>" + book.getBookName() + "</book_name>\n";
  6. result += "<pages>" + book.getPages() + "</pages>\n";
  7. result += "<price>" + book.getPrice() + "</price>\n";
  8. result += "<author>" + book.getAuthor() + "</author>\n";
  9. result += "<isbn>" + book.getIsbn() + "</isbn>\n";
  10. System.out.println("format finished");
  11. return result;
  12. }
posted @ 2017-06-28 13:28 yxysuanfa 阅读(...) 评论(...) 编辑 收藏