设计模式(2)之模板方法模式

模板方法
在基类中定义算法框架,将不可变部分算法,放到基类中,将可变部分算法延迟到子类中实现,使子类在不改变算法结构的前提下,完成自己的特殊部分算法

注意点:
为了保证算法结构不被子类改变,要在定义算法结构的方法上加final修饰符

自我理解
抽离算法结构,具体算法延时实现

需求场景
算法步骤相同,但每步的具体实现不同

代码模板:

/**
 * 人的模板类
 */
public abstract class PersonComplete {

    public final void desc() {
        hair();
        skin();
        eye();
    }

    protected abstract void hair();

    protected abstract void skin();

    protected abstract void eye();


}
/**
 * 黄种人类
 */
public class YellowPeople extends PersonComplete {
    @Override
    protected void hair() {
        System.out.println("黄种人是黑头发");
    }

    @Override
    protected void skin() {
        System.out.println("黄种人是黄皮肤");
    }

    @Override
    protected void eye() {
        System.out.println("黄种人是黑眼睛");
    }
}
/**
 * 黑种人类
 */
public class BlackPerson extends PersonComplete {
    @Override
    protected void hair() {
        System.out.println("blacks have brown hair");
    }

    @Override
    protected void skin() {
        System.out.println("blacks have black skin");
    }

    @Override
    protected void eye() {
        System.out.println("blacks have black eyes");
    }
}

测试代码:

PersonComplete person = new YellowPeople();
person.desc();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值