Ответ
Классическая трехуровневая (3-tier) архитектура разделяет приложение на три логических уровня, каждый со своей ответственностью:
- Уровень представления (Presentation Tier): Пользовательский интерфейс. Его задача — отображать данные и получать команды от пользователя (браузер, мобильное приложение, десктопный клиент).
- Уровень бизнес-логики (Application/Business Logic Tier): "Мозг" приложения. Обрабатывает данные по бизнес-правилам, выполняет вычисления, координирует работу других уровней.
- Уровень данных (Data Tier): Система хранения и управления данными (реляционные и NoSQL БД, файловые хранилища, кэш).
Пример на Python/Flask:
# 1. Presentation Tier (Flask view)
@app.route('/orders')
def show_orders():
orders = order_service.get_recent_orders() # Call to Business Tier
return render_template('orders.html', orders=orders)
# 2. Business Tier (Service layer)
class OrderService:
def get_recent_orders(self):
# Business logic: filter and validate
raw_data = db_repository.get_orders(last_days=7) # Call to Data Tier
return [order for order in raw_data if order.is_valid]
# 3. Data Tier (Repository)
class DBRepository:
def get_orders(self, last_days):
# SQL query or ORM call
return session.query(Order).filter(Order.date >= threshold).all()
Преимущества: Четкое разделение ответственности, упрощение тестирования (можно тестировать уровни изолированно), улучшенная масштабируемость и возможность повторного использования компонентов.