当前位置: 移动技术网 > IT编程>软件设计>设计模式 > 设计模式——模板方法模式

设计模式——模板方法模式

2019年05月18日  | 移动技术网IT编程  | 我要评论

模板方法模式就是在父(基)类定义模板(流程),而具体的处理环节交给子类来实现

/**
 * @author maikec
 * @date 2019/5/10
 */
public abstract class abstractdisplay {
    private final integer print_count =5;
    /**
     * 打开操作
     */
    protected abstract void open();

    /**
     * 打印操作
     */
    protected abstract void print();

    /**
     * 关闭操作
     */
    protected abstract void close();
     /**
     * 定义模板
     */
    public final void display(){
        open();
        for (int i = 0; i < print_count; i++) {
            print();
        }
        close();
    }
}

/**
 * @author maikec
 * @date 2019/5/10
 */
public class chardisplay extends abstractdisplay {
    private final character achar;
    public chardisplay(character achar){
        if (null == achar){
            throw new illegalargumentexception( "character cannot be null" );
        }
        this.achar = achar;
    }
    @override
    public void open() {
        system.out.println( "open char " );
    }

    @override
    public void print() {
        system.out.println( achar.charvalue() );
    }

    @override
    public void close() {
        system.out.println( "close char" );
    }
}

/**
 * @author maikec
 * @date 2019/5/10
 */
public class stringdisplay extends abstractdisplay {
    private final string string ;
    public stringdisplay(string string){
        if (null == string){
            throw new illegalargumentexception( "string cannot be null" );
        }
        this.string = string;
    }
    @override
    public void open() {
        system.out.println( "open string" );
    }

    @override
    public void print() {
        system.out.println( string );
    }

    @override
    public void close() {
        system.out.println( "close string" );
    }
}

/**
 * @author maikec
 * @date 2019/5/10
 */
public class templatedemo {
    public static void main(string[] args) {
        abstractdisplay display = new chardisplay( '*' );
        display.display();

        abstractdisplay stringdisplay = new stringdisplay( "hi" );
        stringdisplay.display();
    }
}

附录

github.com/maikec/patt… 个人github设计模式案例

声明

引用该文档请注明出处

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网