Java程序性能优化-装饰者模式(2)
Java程序性能优化-装饰者模式(2)
装饰者模式( )
装饰者模式的核心思想在于 无需将所有的逻辑 即 核心内容构建 HTML文本构造和HTTP头生成等 个功能模块粘合在一起实现 通过装饰者模式 可以将它们分解为 个几乎完全独立的组件 并在使用时灵活地进行装配 为实现这个功能 可以使用如图 所示的结构
图 装饰者模式示例
IPacketCreator即装饰接口 用于处理具体的内容 PacketBodyCreator是具体的组件 它的功能是构造要发布信息的核心内容 但是它不负责将其构造成一个格式工整 可直接发布的数据格式 PacketHTTPHeaderCreator负责对给定的内容加上HTTP头部 PacketHTMLHeaderCreator负责将给定的内容格式化成HTML文本 如图 所示 个功能模块相对独立且分离 易于系统维护
IPacketCreator的实现很简单 它是一个单方法的接口
public interface IPacketCreator {
public String handleContent() //用于内容处理
}
PacketBodyCreator用于返回数据包的核心数据
public class PacketBodyCreator implements IPacketCreator{
@Override
public String handleContent() {
return Content of Packet ; //构造核心数据 但不包括格式
}

}
PacketDecorator维护核心组件ponent对象 它负责告知其子类 其核心业务逻辑应该全权委托ponent完成 自己仅仅是做增强处理
public abstract class PacketDecorator implements IPacketCreator{
IPacketCreator ponent;
public PacketDecorator(IPacketCreator c){
cponent=c;
}
}
PacketHTMLHeaderCreator是具体的装饰器 它负责对核心发布的内容进行HTML格式化操作 需要特别注意的是 它委托了具体组件ponent进行核心业务处理
public class PacketHTMLHeaderCreator extends PacketDecorator{
public PacketHTMLHeaderCreator(IPacketCreator c) {
super(c)
}
@Override
public String handleContent() { //将给定数据封装成HTML
StringBuffer sb=new StringBuffer()
sb append( <> )
sb append( <body> )
sb append(ponent handleContent())
sb append( </body> )
sb append( </>n )
return sb toString()
}
}
返回目录Java程序性能优化 让你的Java程序更快 更稳定
编辑推荐
Java程序设计培训视频教程
J EE高级框架实战培训视频教程
J ME移动开发实战教学视频
Visual C++音频/视频技术开发与实战
Oracle索引技术
lishixinzhi/Article/program/Java/gj/201311/27823