您的位置:首页 > 其它

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

2017-01-01 20:16 295 查看
声明:文章内容根据大牛博客的内容,自己理解后,给自己做的学习笔记,文末会附上大牛博客地址链接。有需要沟通交流的可加我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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: