package javatuning.ch2.decorator;
public interface IPacketCreator {
public String handleContent();
}
------------------------------------------------------------------------------
package javatuning.ch2.decorator;
public class PacketBodyCreator implements IPacketCreator{
@Override
public String handleContent() {
return "Content of Packet";
}
}
------------------------------------------------------------------------------
package javatuning.ch2.decorator;
public abstract class PacketDecorator implements IPacketCreator{
IPacketCreator componet;
public PacketDecorator(IPacketCreator c){
componet=c;
}
}
------------------------------------------------------------------------------
package javatuning.ch2.decorator;
public class PacketHTMLHeaderCreator extends PacketDecorator{
public PacketHTMLHeaderCreator(IPacketCreator c) {
super(c);
}
@Override
public String handleContent() {
StringBuffer sb=new StringBuffer();
sb.append("<html>");
sb.append("<body>");
sb.append(componet.handleContent());
sb.append("</body>");
sb.append("</html>\n");
return sb.toString();
}
}
------------------------------------------------------------------------------
package javatuning.ch2.decorator;
public class PacketHTTPHeaderCreator extends PacketDecorator{
public PacketHTTPHeaderCreator(IPacketCreator c) {
super(c);
}
@Override
public String handleContent() {
StringBuffer sb=new StringBuffer();
sb.append("Cache-Control:no-cache\n");
sb.append("Date:Mon,31Dec201204:25:57GMT\n");
sb.append(componet.handleContent());
return sb.toString();
}
}
------------------------------------------------------------------------------
package javatuning.ch2.decorator;
public class Main {
public static void main(String[] args) {
IPacketCreator pc=new PacketHTTPHeaderCreator(
new PacketHTMLHeaderCreator(
new PacketBodyCreator()));
System.out.println(pc.handleContent());
}
}
设置模式之 -> 装饰着模式
猜你喜欢
转载自blog.csdn.net/qq_37769323/article/details/104173365
今日推荐
周排行