0
点赞
收藏
分享

微信扫一扫

【设计模式】系列之模板模式

模板模式,官方解释是这样的:

也就是说,父类提供公共方法,子类提供自定义方法。

这里,我想模拟一个场景,就是比如我们去买手机,品牌手机都会送礼物,不同的品牌送的礼物不一样。这样,我们就可以让父类实现固定逻辑,子类实现不同品牌送礼物的逻辑。

代码:

父类:

public abstract class Gift {
    // 买手机总流程
    protected void doSend(){
        sendBefore();
        send();
        sendAfter();
    }
    // 赠送前
    private void sendBefore() {
        System.out.println("忽悠你买手机......");
    }
    // 赠送礼物
    protected abstract void send();
    // 赠送后
    private void sendAfter() {
        System.out.println("完成购买,礼物已赠送!");
    }
}

子类1:

        小米子类:

public class Mi extends Gift{

    @Override
    protected void send() {
        System.out.println("送了个小米耳机");
    }
}

子类2:

        苹果子类:

public class Apple extends Gift{

    @Override
    protected void send() {
        System.out.println("送了个寂寞");
    }
}

测试类:

public class Test {
    public static void main(String[] args) {
        Gift gift = new Mi();
        gift.doSend();
        gift = new Apple();
        gift.doSend();
    }
}

结果:

买手机中......
送了个小米耳机
完成购买,礼物已赠送!
买手机中......
送了个寂寞
完成购买,礼物已赠送!

自此,一个简单的模板模式就学会了,恭喜! 

举报

相关推荐

0 条评论