Sobes.tech
Middle

MVP mimari deseni nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

MVP (Model-Görünüm-Sunucu) mimarisi, iş mantığını, verileri ve kullanıcı arayüzünü ayırmak için kullanılan bir tasarım desenidir.

Ana bileşenler:

  • Model: Verileri ve iş mantığını temsil eder. Görünüm veya Sunucu hakkında bilgi sahibi değildir.
  • View: Verileri gösterir, kullanıcı arayüzü sağlar ve kullanıcı eylemlerini Sunucuya yönlendirir. İş mantığını içermez. Görünüm pasif olup, sadece Sunucudan alınan verileri gösterir.
  • Presenter: Model ve View arasında aracı görevi görür. Kullanıcı arayüzü olaylarını işler, Model'den veri çeker ve View'yi günceller. Sunucu mantığını içermez, sadece görünüm mantığını barındırır. View'in durumunu yönetir.

İşleyiş:

  1. Kullanıcı View ile etkileşime girer.
  2. View, eylemi Sunucuya devreder.
  3. Sunucu, eylemi işler:
    • Gerekirse Model'i günceller.
    • Model'den veri ister.
    • Güncellenmiş verilerle View'yi günceller.

Avantajlar:

  • Test edilebilirliğin artırılması (Sunucu ve Model, View'den bağımsız olarak test edilebilir).
  • Sorumlulukların ayrılması.
  • Bakım kolaylığı.

Örnek (şematik):

// Model
class DataModel {
    getData() {
        // ... veri alma mantığı ...
        return { message: "Modelden merhaba!" };
    }
}

// Görünüm (sözde UI kodu)
class TextView {
    display(data) {
        // Ekranda metni güncelle
        console.log(data.message);
    }

    onClickButton(handler) {
        // Butona olay bağla
    }
}

// Sunucu
class Presenter {
    constructor(model, view) {
        this.model = model;
        this.view = view;
        this.view.onClickButton(this.handleButtonClick.bind(this)); // Olay bağlama
    }

    handleButtonClick() {
        const data = this.model.getData();
        this.view.display(data);
    }
}

// Kullanım
const model = new DataModel();
const view = new TextView(); // Gerçek UI görünümü
const presenter = new Presenter(model, view);