Skip to content

Strategy Design Pattern#

classDiagram
    class App{
        +pre_action_setup()
        +perform_action(strategy: Strategy)
    }
    App *-- Strategy : Composition
    note for App "perform_action()\ncalls strategy.do_strategy(list)"
    class Strategy{
        +do_strategy(list: List~int~)*
    }
    <<Interface>> Strategy
    Strategy <|-- StrategyA : Inheritance
    Strategy <|-- StrategyB : Inheritance
    Strategy <|-- StrategyC : Inheritance
    class StrategyA{
        +int a
        +int b
        +__init__(a, b)
        +do_strategy(list: List~int~)
    }
    class StrategyB{
        +int c
        +float d
        +__init__(c, d)
        +do_strategy(list: List~int~)
    }
    class StrategyC{
        +float e
        +float f
        +__init__(e, f)
        +do_strategy(list: List~int~)
    }