Key 5: Bridging class interfaces.
This pattern is used to adapt a given class to a new interface. It solves the problem for an interface mismatch. To demonstrate this, let's assume that we have an API function that creates a competition to run different animals. Animals should have a
running_speed function, which tells their speed to compare them.
Cat is one such class. Now, if we have a
Fish class in a different library, which also wants to participate in the function, it must be able to know its
running_speed function. As changing the implementation of
Fish is not good option, we can create an
adaptor class that can adapt the
Fish class to run by providing the necessary bridge:
def running_competition(*list_of_animals): if len(list_of_animals)<1: ...