技术开发 频道

模板方法模式实现探讨



    模板方法模式定义及结构
    模板方法模式属于行为模式的一种(GOF95)。准备一个抽象类,定义一个操作中的算法的骨架,将一些步骤声明为抽象方法迫使子类去实现。不同的子类可以以不同的方式实现这些抽象方法。

    模板方法模式的静态结构图如下 :




    在模板方法模式中有两个参与者进行协作。
    抽象模板类:定义一个或多个抽象操作,由子类去实现。这些操作称为基本操作。
    定义并实现一个具体操作,这个具体操作通过调用基本操作确定优异逻辑。这个具体操作称为模板方法。
    具体类:实现抽象模板类所定义的抽象操作。
    如上面的订单处理所示,AbstractOrder就是抽象模板类,placeOrder即是抽象模板方法。getOrderItemPrice,getSpendingLimit和saveOrder三个抽象方法为基本操作。
具体子类能过需要去实现这三个抽象方法。不同的子类可能有着不同的实现方式。

Public class ConcreteOrder extends AbstractOrder{ public int getOrderItemPrice(OrderItem orderItem){ //计算货物的售价 …… } public int getSpendingLimit(int customerId){ //读取客户的信用额度 ….. } public int saveOrder(int customerId, int total, List orderItemList){ //写入数据库 …… } }


    ConcreteOrder为AbstractOrder的具体子类,ConcreteOrder需要去完成具体的三个基本操作。同时它也具有了父类一样的处理逻辑。把具体的实现延迟到了子类去实现,这就是模板方法模式的关键。

0
相关文章