Behavioral Patterns

1. Strategy

1.1. Case 1: TripMode

graph LR p[enum TYPE] ch1[BY_BUS] ch2[BY_TRAIN] ch3[BY_PLANE] p --> ch1 p --> ch2 p --> ch3

graph LR p[static unordered_map s_trip_modes_] ch1[BY_BUS, ByBus*] ch2[BY_TRAIN, ByTrain*] ch3[BY_PLANE, ByPlane*] p --> ch1 p --> ch2 p --> ch3

1.2. Case 2: MathOperation

1.3. Case 3: ParseFile

2. Chain of Responsibility

void filter(const Request& req, Response& res) {
 deal(req, res);
#ifdef Stop passing down
    if(res == FINISHED)
        return;
#endif
 auto next_handle = getNextHandle();
    if(next_handle)
        next_handle->filter(req, res);
#endif
}

2.1. Case 1: Logger

2.2. Case 2: PassNotes

flowchart subgraph PassNotesChain Girl1 --passToTheNext--> Girl2 --passToTheNext--> Girl3 Girl1 --Be my girlfriend ?--> Girl1 Girl2 --Be my girlfriend ?--> Girl2 Girl3 --Be my girlfriend ?--> Girl3 end Req[A Note] --> PassingNotesChain PassingNotesChain .-> Res[Response]

3. Template

3.1. Case 1: Charge Device

flowchart LR ChargeDevice --- ChargePhone & ChargeComputer & ChargeEV --- charge charge ---> chargePhone & chargeComputer & chargeEV

3.2. Case 2: Play Game

4. State

4.1. LightSwitch

Copyright © gendloop 2024 all right reserved,powered by Gitbook该文件修订时间: 2026-04-03 03:43:16

results matching ""

    No results matching ""