1. C++ / Говнокод #8427

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    data::TokenPtr lexer::ReadToken::operator()(AnalyzeState analyze_state)
    {
        ReadTokenNum    handler01( nullptr  );
        ReadTokenName   handler02(&handler01);
        ReadTokenPlus   handler03(&handler02);
        ReadTokenMinus  handler04(&handler03);
        ReadTokenDiv    handler05(&handler04);
        ReadTokenMult   handler06(&handler05);
        ReadTokenAssign handler07(&handler06);
        ReadTokenSmcln  handler08(&handler07);
        ReadTokenLpar   handler09(&handler08);
        ReadTokenRpar   handler10(&handler09);
    
        ReadTokenHandler &start_handler = handler10;
    
        return
            start_handler.Read(analyze_state);
    }

    Вот такая красота получилась при использовании паттерна 'цепочка обязанностей'.

    Запостил: int_index, 05 Ноября 2011

    Комментарии (3) RSS

    Добавить комментарий