65.9K
CodeProject 正在变化。 阅读更多。
Home

模板方法

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2008年6月13日

CPOL
viewsIcon

9875

模板方法 是一种行为模式,它允许子类实现可变的行为。在下面的示例中,我们

模板方法

模板方法 是一种行为模式,它允许子类实现可变的行为。在下面的示例中,我们使用模板方法来允许子类实现制作热饮的方式。

模板方法模式的 VB 示例

Public Class MyPage
          Public Sub Page_Load()
     
        Dim CupOfTea As HotDrink
        CupOfTea = New Tea

        Dim CupOfCoffee As HotDrink
        CupOfCoffee = New Coffee

        MakeDrink(CupOfTea)        

        Response.write(".........
") MakeDrink(CupOfCoffee) End Sub ''' ''' Generic Method that will make the hot Drink ''' Public Sub MakeDrink(ByVal HotDrink As HotDrink) HotDrink.boilWater() HotDrink.addIngredients() HotDrink.addCondiments() End SubEnd Class ''' ''' Abstract Class ''' Public MustInherit Class HotDrink Public Sub boilWater() Response.write("Boiling Water...
") End Sub Public MustOverride Sub addIngredients() Public MustOverride Sub addCondiments()End Class ''' ''' Tea Class that implements behaviour that can vary i.e. ''' the addIngredients & addCondiments methods ''' Public Class Tea Inherits HotDrink Public Overrides Sub addCondiments() Response.write("Add Milk ...
") End Sub Public Overrides Sub addIngredients() Response.write("Add Tea Bags ...
") End SubEnd Class ''' ''' Coffee Class that implements behaviour that can vary i.e. ''' the addIngredients & addCondiments methods ''' Public Class Coffee Inherits HotDrink Public Overrides Sub addCondiments() Response.write("Add Milk ...
") End Sub Public Overrides Sub addIngredients() Response.write("Add Coffee Granules ...
") End Sub End Class

UML

Template Method UML

© . All rights reserved.