Назад к вопросам
Рунити
Junior — Middle
72
Какой шаблон проектирования применяется в промежуточном программном обеспечении?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В промежуточном программном обеспечении (middleware) часто применяется шаблон проектирования Chain of Responsibility (Цепочка обязанностей). Этот шаблон позволяет передавать запросы по цепочке обработчиков, где каждый обработчик решает, обработать запрос или передать дальше. В контексте middleware это удобно для последовательной обработки запросов и ответов, например, для аутентификации, логирования, обработки ошибок и т.д.
Пример на Python (упрощённо):
class Middleware:
def __init__(self, next_middleware=None):
self.next = next_middleware
def handle(self, request):
# обработка запроса
if self.next:
return self.next.handle(request)
return None
class AuthMiddleware(Middleware):
def handle(self, request):
if not request.get('user'):
return 'Unauthorized'
return super().handle(request)
class LoggingMiddleware(Middleware):
def handle(self, request):
print(f"Request: {request}")
return super().handle(request)
# Создание цепочки
middleware = AuthMiddleware(LoggingMiddleware())
response = middleware.handle({'user': 'Alice'})