In this example, the Journal class has only one responsibility, which is to keep track of journal entries, while the PersistenceManager class has only one responsibility, which is to save and load the journal to and from a file.
This adheres to the Single Responsibility Principle, as each class has a single, well-defined responsibility.
Single Responsibility Principle (SRP)
Clean Code Studio
Python Design Patterns
Open Closed Principle (OCP)
Python Open Closed Principle Design Pattern
Python Liskov's Substitution Principle Design Pattern