Implementation
Let's look at a relatively simple application to illustrate the concept of adaptation. Consider an example of a club's activities. It mainly needs to organize performances and events for the entertainment of its clients, by hiring talented artists.
At the core, we have a Club class that represents the club where hired artists perform some evenings. The organize_performance() method is the main action that the club can perform. The code is as follows:
class Club:
    def __init__(self, name):
        self.name = name
    def __str__(self):
        return f'the club {self.name}'
    def organize_event(self):
        return 'hires an artist to perform for the people'
Most of the time, our club hires a DJ to perform, but our application addresses...