August 2018
Intermediate to advanced
332 pages
9h 12m
English
Now, let's prove that this design is actually as extensible as we wanted it to be. Imagine that a new requirement arises, and we have to also support events that correspond to transactions that the user executed on the monitored system.
The class diagram for the design has to include such a new event type, as in the following:

Only by adding the code to this new class does the logic keep working as expected:
# openclosed_3.pyclass Event: def __init__(self, raw_data): self.raw_data = raw_data @staticmethod def meets_condition(event_data: dict): return Falseclass UnknownEvent(Event): """A type of event that cannot ...