欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

设计模式-装饰器

终极管理员 知识笔记 113阅读

design模式-装饰器是将函数动态添加到一个对象中,以实现该对象的继承功能。每个功能可以自由组合。从而降低各功能的耦合度。UML图如下所示。的模拟场景是打印表格(参考java和设计模式)。打印表格时,我们可以分为三个部分:打印表头、打印正文、打印表尾。首先定义打印表格的接口,后面所有的类都要实现这个接口,这叫面向接口编程。代码如下: public interface printable { void print。}第二步是定义打印文本的代码,我们将decorator这个类,也就是修饰它,并添加一些其他函数如下:publiclsprintbodyimplements print table { public void。

style="color: rgba(0, 0, 0, 1)"> print(){
        System.out.println(
"Print body!");
    }

}
     第三步,定义打印表头表尾的代码,如下
          打印表头:
public class PrintHeader implements PrintTable {
    
private PrintTable printTable;
    
/**
     * 
     
*/

    
public PrintHeader(PrintTable printTable) {
        
this.printTable = printTable;
    }

    
    
public void print(){
        System.out.println(
"Print Header!");
        printTable.print();
    }

}

        打印表尾
public class PrintFooter implements PrintTable {
    
private PrintTable printTable;
    
public PrintFooter(PrintTable printTable) {
        
this.printTable = printTable;
    }

    
public void print(){
        printTable.print();
        System.out.println(
"Print Footer!");
    }

}

   第四步,测试代码
public class Test {

    
public static void main(String[] args) {
        PrintBody printBody 
= new PrintBody();
        PrintHeader printHeader 
= new PrintHeader(printBody);
        PrintFooter printFooter 
= new PrintFooter(printHeader);
        printFooter.print();
    }

}
     执行该测试代码,结果如下:
Print Header!
Print body!
Print Footer!
    可以看到,在测试代码中,我们可以灵活定义打印格式.

标签:
声明:无特别说明,转载请标明本文来源!