Reguła 4. Uogólnianie wymaga trzech przykładów

Jako młodzi programiści wszyscy jesteśmy uczeni, że ogólne rozwiązania są lepsze od szczegółowych. Lepiej napisać jedną funkcję, która rozwiązuje dwa problemy, niż dwie osobne, z których każda będzie rozwiązywać jeden problem.

Jest raczej mało prawdopodobne, że napiszesz kod taki jak ten przedstawiony poniżej:

Sign * findRedSign(const vector<Sign *> & signs)
{
    for (Sign * sign : signs)
        if (sign->color() == Color::Red)
            return sign;
 
    return nullptr;
}

Z kolei bez trudu mogę sobie wyobrazić, że napiszesz funkcję taką jak ta:

Sign * findSignByColor(const vector<Sign *> & signs, Color color)
{
    for (Sign * sign : signs)
        if (sign->color() == color)
            return sign;
 
 return ...

Get Reguły programowania now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.