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

项目经理告诉你,今天想在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 阅读(...) 评论(...) 编辑 收藏

Java设计模式透析之 —— 模板方法(Template Method)的更多相关文章

  1. Java设计模式透析之 —— 单例(Singleton)

    写软件的时候经常需要用到打印日志功能,可以帮助你调试和定位问题,项目上线后还可以帮助你分析数据.但是Java原生带有的System.out.println()方法却很少在真正的项目开发中使用,甚至像f ...

  2. Java设计模式透析之 —— 策略(Strategy)

    今天你的leader兴致冲冲地找到你,希望你能够帮他一个小忙.他如今急着要去开会.要帮什么忙呢?你非常好奇. 他对你说.当前你们项目的数据库中有一张用户信息表.里面存放了非常用户的数据.如今须要完毕一 ...

  3. Java设计模式透析之 —— 组合(Composite)

    听说你们公司最近新推出了一款电子书阅读应用,市场反应很不错,应用里还有图书商城,用户可以在其中随意选购自己喜欢的书籍.你们公司也是对此项目高度重视,加大了投入力度,决定给此应用再增加点功能. 好吧,你 ...

  4. Java设计模式透析之 —— 适配器(Adapter)

    转载请注明出处:http://blog.csdn.net/sinyu890807/article/details/9400141 今天一大早,你的leader就匆匆忙忙跑过来找到你:“快,快,紧急任务 ...

  5. Ruby设计模式透析之 —— 适配器(Adapter)

    转载请注明出处:http://blog.csdn.net/sinyu890807/article/details/9400153 此为Java设计模式透析的拷贝版,专门为Ruby爱好者提供的,不熟悉R ...

  6. Ruby设计模式透析之 —— 组合(Composite)

    转载请注明出处:http://blog.csdn.net/sinyu890807/article/details/9153761 此为Java设计模式透析的拷贝版,专门为Ruby爱好者提供的,不熟悉R ...

  7. 宋宝华:Linux设备驱动框架里的设计模式之——模板方法(Template Method)

    本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 宋宝华 来源: 微信公众号linux阅码场(id: linuxdev) 前言 <设计模式>这本经典 ...

  8. 一天一个设计模式——模板方法(Template Method)模式

    一.模式说明 现实世界中的模板是用于将事物的结构规律予以固定化.标准化的成果,它体现了结构形式的标准化.例如镂空文字印刷的模板,通过某个模板印刷出来的文字字体大小都是一模一样,但是具体使用什么材质的颜 ...

  9. 行为型设计模式之模板方法(TEMPLATE METHOD)模式 ,策略(Strategy )模式

    1 模板方法(TEMPLATE METHOD)模式: 模板方法模式把我们不知道具体实现的步聚封装成抽象方法,提供一些按正确顺序调用它们的具体方法(这些具体方法统称为模板方法),这样构成一个抽象基类.子 ...

随机推荐

  1. Linux安装sshfs挂载远程目录到本地及卸载

    挂载远程目录的方式很多,这里把sshfs记录一下备忘.Linux用sshfs挂载远程目录到本地 安装sshfs 在Ubuntu下,只需要使用 $ sudo apt-get install sshfs ...

  2. 部署微信定位精灵APK到Genymotion

  3. js设计模式-组合模式

    组合模式是一种专为创建web上的动态用户界面而量身定制的模式.使用这种模式,可以用一条命令在多个对象上激发复杂的或递归的行为.这可以简化粘合性代码,使其更容易维护,而那些复杂行为则被委托给各个对象. ...

  4. java三大版本解析

    JAVA三大版本代表着JAVA技术的三个应用领域:JAVASE.JAVAME.JAVAEE. JAVA以前很长一段时间被称为JAVA2,所以现在很多人习惯称为J2SE.J2ME.J2EE,它们表示的含 ...

  5. 详解DevExpress.LookUpEdit控件实现自动搜索定位功能(转)

    转载自csdn博客 爱拼才会赢 的博客 地址是详解DevExpress.LookUpEdit控件实现自动搜索定位功能(转)

  6. Super超级ERP系统---(10)订单打包

    订单拣货完成后,需要把订单装箱打包,并打印客户地址信息.订单打包的操作流程先是扫描订单号,然后扫描商品条码.  1.订单打包 打印包装箱面单 2.订单发货 订单打包完成后就等待发货,快递公司来拉货的时 ...

  7. Unity3d Time

    using UnityEngine; using System.Collections; public class test1 : MonoBehaviour { public float angle ...

  8. 织梦dedecms红黑配图片模板源码v2.0

    dedecms红黑配风格美女图片站是采用dedecms程序搭建的图片网站源码,网站感觉很大气,简约但是不简单,适合做图片网站.网站模板是收集其他网站的模板,感谢原网站提供者.在安装过程中出现问题,现已 ...

  9. [C]关于交换

    交换(c,c++): 1)temp交换(也适用于非数型) 定义一个新的变量,借助它完成交换. int a,b; a=10; b=15; int t; t=a; a=b; b=t; 2)位运算 位运算不 ...

  10. WP - 控件基础-按钮控件

    Button:HyperlinkButton:RepeatButton:ToggleButton 1.Button:    <button content="Button" ...