Implementation
Let's look at a relatively simple application to illustrate adaptation: a club's activities, mainly the need 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 the need to organize a diversity of performances, by a musician or music band, by a dancer, a one-man or one-woman show, and so on.
Via our research to try and reuse existing code, we find an open source contributed library that brings us two interesting classes: Musician...