模板方法模式---我的地盘听我的

        声明:文章内容根据大牛博客的内容,自己理解后,给自己做的学习笔记,文末会附上大牛博客地址链接。有需要沟通交流的可加我QQ群:425120333 
        模板方法模式是中在框架搭建过程中经常使用的一种设计模式,他声明了需要子类自己去实现的抽象方法,并且已经定义好了具体的调用逻辑,
    对于子类来说,只要根据自己的需求实现抽象方法中的功能即可。
public class ShipClient {
    public static void main(String[] args) {
        //生成木船
        ShipBuilding woodenShip = new WoodenShip();
        woodenShip.assembly();
        System.out.println("-------------分隔符-------------");
        //生成铁船
        ShipBuilding ironShip = new IronShip();
        ironShip.assembly();
    }
}

abstract class ShipBuilding {
    //获取材料
    abstract void getMaterial();

    //建造船身
    abstract void makeHull();

    //安装动力系统
    abstract void havePower();

    //组装
    public void assembly() {
        getMaterial();
        makeHull();
        havePower();
    }
}

class WoodenShip extends ShipBuilding {

    @Override
    void getMaterial() {
        System.out.println("木船---获取到足够的木材");
    }

    @Override
    void makeHull() {
        System.out.println("木船---建造单层的船身");

    }

    @Override
    void havePower() {
        System.out.println("木船---制造划桨");
    }

}

class IronShip extends ShipBuilding {

    @Override
    void getMaterial() {
        System.out.println("铁船---获取到足够的铁板");
    }

    @Override
    void makeHull() {
        System.out.println("铁船---建造双层的船身");

    }

    @Override
    void havePower() {
        System.out.println("铁船---安装发动机");
    }

}

控制台输出:
木船—获取到足够的木材
木船—建造单层的船身
木船—制造划桨
————-分隔符————-
铁船—获取到足够的铁板
铁船—建造双层的船身
铁船—安装发动机

    这个例子简单演示了模板方法模式的使用,在抽象类中有个组装的过程,这是不变的,所以不用子类是实现,已经定义好了。子类各自实现抽象方法,
最终都通过调用这个模板方法实现整个过程的串联。
参考大牛链接:http://www.cnblogs.com/zuoxiaolong/p/pattern10.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值