Problem Statement
When classes have unclear or mixed responsibilities, the code becomes hard to understand, maintain, and extend. This often leads to bugs and duplicated logic because behaviors are scattered or overloaded in the wrong places.
This diagram shows three classes each with focused responsibilities and behaviors: User handles login/logout, Order manages items and totals, Payment processes payments.
### Before: Mixed responsibilities in one class class User: def __init__(self, name, email): self.name = name self.email = email self.orders = [] def login(self): print(f"{self.name} logged in") def add_order(self, order): self.orders.append(order) def calculate_total_spent(self): total = 0 for order in self.orders: total += sum(item['price'] for item in order['items']) return total ### After: Clear responsibilities split into classes class User: def __init__(self, name, email): self.name = name self.email = email def login(self): print(f"{self.name} logged in") class Order: def __init__(self, order_id): self.order_id = order_id self.items = [] def add_item(self, item): self.items.append(item) def calculate_total(self): return sum(item['price'] for item in self.items) class UserOrders: def __init__(self): self.orders = [] def add_order(self, order): self.orders.append(order) def calculate_total_spent(self): return sum(order.calculate_total() for order in self.orders)
print(car.get_speed()) after creating car = Car(50)?
class Car:
def __init__(self, speed):
self.speed = speed
def get_speed(self):
return self.speed
class Person:
def __init__(self, name):
name = name
def get_name(self):
return self.name
BankAccount class. Which of the following responsibilities should NOT be part of this class to keep it focused and maintainable?Pass the test and this pattern moves unknown