W ostatnim artykule omawialiśmy MVVM, dzisiaj pora na kolejny wzorzec projektowy MVC. Model-View-Controller (MVC) to popularny wzorzec projektowy, który jest szeroko stosowany w tworzeniu aplikacji webowych, desktopowych i mobilnych. Jego głównym celem jest oddzielenie logiki aplikacji od jej interfejsu użytkownika, co ułatwia utrzymanie kodu, testowanie oraz rozwój oprogramowania.
Podstawowe komponenty – wzorzec projektowy MVC
MVC składa się z trzech głównych komponentów:
Model
Model odpowiada za logikę biznesową aplikacji i zarządzanie danymi. Przechowuje informacje i zapewnia metody do ich przetwarzania. Może być łączony z bazą danych, zewnętrznymi API lub innymi źródłami danych. Model jest niezależny od interfejsu użytkownika.
Przykład w pseudo-kodzie:
class ProductModel {
constructor(name, price) {
this.name = name;
this.price = price;
}
save() {
// Zapisz produkt do bazy danych
}
}View
View (widok) odpowiada za prezentację danych użytkownikowi. Jest to warstwa interfejsu użytkownika, która pobiera dane z Modelu i wyświetla je w odpowiedniej formie. Widok nie powinien zawierać logiki biznesowej.
Przykład w pseudo-kodzie:
<div>
<h1>Produkt: {{ name }}</h1>
<p>Cena: {{ price }} PLN</p>
</div>Controller
Controller (kontroler) jest odpowiedzialny za przetwarzanie żądań użytkownika, koordynację Modelu i Widoku. Odbiera dane od użytkownika, przekazuje je do Modelu i aktualizuje Widok na podstawie wyników.
Przykład w pseudo-kodzie:
class ProductController {
createProduct(req) {
const { name, price } = req.body;
const product = new ProductModel(name, price);
product.save();
return {
message: 'Produkt został utworzony',
product
};
}
}Zalety MVC
- Oddzielenie logiki – kod jest bardziej przejrzysty, ponieważ każdy komponent odpowiada za inną funkcjonalność.
- Łatwe testowanie – możliwość testowania poszczególnych warstw niezależnie.
- Możliwość wielokrotnego użycia kodu – Model i Widok mogą być wykorzystane w innych aplikacjach.
- Skalowalność – aplikacje oparte na MVC łatwiej rozwijać i rozbudowywać.
Wady MVC
- Złożoność – dla prostych projektów MVC może być zbyt skomplikowane.
- Większa liczba plików – każdy komponent wymaga oddzielnego pliku lub modułu, co może prowadzić do rozbudowanej struktury projektu.
Zastosowanie MVC
MVC jest stosowany w wielu technologiach i frameworkach, takich jak:
- Web: Ruby on Rails, Laravel, Django
- Desktop: JavaFX, .NET Framework
- Mobile: Android (architektura MVC była jednym z popularniejszych podejść)
Przykład w praktyce (Node.js + Express)
Poniżej przykład implementacji prostego systemu opartego na MVC w Node.js z użyciem frameworka Express:
Model
class UserModel {
constructor(name, email) {
this.name = name;
this.email = email;
}
save() {
// Logika zapisu do bazy danych
console.log(`${this.name} został zapisany.`);
}
}Controller
const UserModel = require('./models/UserModel');
class UserController {
createUser(req, res) {
const { name, email } = req.body;
const user = new UserModel(name, email);
user.save();
res.json({ message: 'Użytkownik utworzony', user });
}
}
module.exports = new UserController();View (Routing w Express)
const express = require('express');
const router = express.Router();
const UserController = require('./controllers/UserController');
router.post('/users', (req, res) => UserController.createUser(req, res));
module.exports = router;Podsumowanie
Wzorzec projektowy MVC (Model-View-Controller) to potężny wzorzec, który umożliwia tworzenie zorganizowanego i skalowalnego kodu. Choć jego implementacja może być bardziej skomplikowana w porównaniu z prostszymi podejściami, korzyści w postaci przejrzystości i możliwości rozwoju projektu są nieocenione.
Obraz Artur Shamsutdinov z Pixabay





