Sobes.tech
Назад к вопросам
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'})