[关闭]
@Allen-miss 2017-06-17T09:26:27.000000Z 字数 1188 阅读 629

Java设计模式——模板方法

Java设计模式


模板方法: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

java设计模式让你的代码看起来不在像是小学生写的代码

  1. //模板父类
  2. public abstract class Formatter {
  3. public String formatBook(Book book) {
  4. beforeFormat();
  5. String result = formating(book);
  6. afterFormat();
  7. return result;
  8. }
  9. protected void beforeFormat() {
  10. System.out.println("format begins");
  11. }
  12. protected abstract String formating(Book book);
  13. protected void afterFormat() {
  14. System.out.println("format finished");
  15. }
  1. //模板子类1
  2. public class JSONFormatter extends Formatter {
  3. @Override
  4. protected String formating(Book book) {
  5. String result = "";
  6. result += "{\n";
  7. result += "\"book_name\" : \"" + book.getBookName() + "\",\n";
  8. result += "\"pages\" : \"" + book.getPages() + "\",\n";
  9. result += "\"price\" : \"" + book.getPrice() + "\",\n";
  10. result += "\"author\" : \"" + book.getAuthor() + "\",\n";
  11. result += "\"isbn\" : \"" + book.getIsbn() + "\",\n";
  12. result += "}";
  13. return result;
  14. }
  15. }
  1. //模板子类2
  2. public class XMLFormatter extends Formatter {
  3. @Override
  4. protected String formating(Book book) {
  5. String result = "";
  6. result += "<book_name>" + book.getBookName() + "</book_name>\n";
  7. result += "<pages>" + book.getPages() + "</pages>\n";
  8. result += "<price>" + book.getPrice() + "</price>\n";
  9. result += "<author>" + book.getAuthor() + "</author>\n";
  10. result += "<isbn>" + book.getIsbn() + "</isbn>\n";
  11. return result;
  12. }
  13. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注