Model-View-Controller (MVC) iyi bilinen bir tasarım deseni web geliştirme alanında. Kodumuzu düzenlemenin yoludur. Bir programın veya uygulamanın veri modeli, sunum bilgisi ve kontrol bilgisinden oluşması gerektiğini belirtir. MVC modeli tüm bu bileşenlerin farklı nesneler olarak ayrılmasını gerektirir.
Bu bölümde, Java'da MVC Mimarisini, avantajlarını, dezavantajlarını ve MVC'nin Java'da uygulanmasını anlamak için örneklerle birlikte tartışacağız.
Java'da MVC mimarisi nedir?
MVC mimarisini temel alan model tasarımları MVC tasarım modelini takip etmektedir. Model tasarımları kullanılarak yazılım tasarlanırken uygulama mantığı kullanıcı arayüzünden ayrılır.
dizeleri bölme c++
MVC kalıp mimarisi üç katmandan oluşur:
Java Programlamada Model basit içerir Java sınıfları , verileri görüntülemek için kullanılan Görünüm ve Denetleyici şunları içerir: servlet'ler . Bu ayrım nedeniyle kullanıcı talepleri şu şekilde işlenir:
- Bir istemci (tarayıcı), bir sayfa için sunucu tarafındaki denetleyiciye bir istek gönderir.
- Kontrolör daha sonra modeli çağırır. İstenilen verileri toplar.
- Daha sonra denetleyici, alınan verileri görünüm katmanına aktarır.
- Artık sonuç, görünüm tarafından tarayıcıya (istemciye) geri gönderilir.
MVC Mimarisinin Avantajları
MVC mimarisinin avantajları şu şekildedir:
- MVC, uygulamanın büyümesine yardımcı olan ölçeklenebilirlik özelliğine sahiptir.
- Daha az bağımlılık olduğundan bileşenlerin bakımı kolaydır.
- Bir model, kodun yeniden kullanılabilirliğini sağlayan birden çok görünüm tarafından yeniden kullanılabilir.
- Geliştiriciler üç katmanla (Model, Görünüm ve Denetleyici) aynı anda çalışabilir.
- MVC kullanılarak uygulama daha anlaşılır hale gelir.
- MVC kullanıldığında her katman ayrı ayrı tutulur, bu nedenle çok büyük kodlarla uğraşmamıza gerek kalmaz.
- Uygulamanın genişletilmesi ve test edilmesi daha kolaydır.
Java kullanarak MVC'nin uygulanması
MVC şablonunu Java'da uygulamak için aşağıdaki üç sınıfı oluşturmamız gerekiyor.
MVC Mimari Katmanları
Model Katmanı
MVC tasarım desenindeki Model, uygulama için bir veri katmanı görevi görür. Uygulamanın iş mantığını ve aynı zamanda uygulamanın durumunu temsil eder. Model nesnesi, model durumunu veritabanına getirir ve saklar. Model katmanını kullanarak, uygulama kavramlarını temsil eden verilere kurallar uygulanır.
Aynı zamanda MVC modelini uygulamanın ilk adımı olan bir kod oluşturan aşağıdaki kod parçacığını ele alalım.
Çalışan.java
// class that represents model public class Employee { // declaring the variables private String EmployeeName; private String EmployeeId; private String EmployeeDepartment; // defining getter and setter methods public String getId() { return EmployeeId; } public void setId(String id) { this.EmployeeId = id; } public String getName() { return EmployeeName; } public void setName(String name) { this.EmployeeName = name; } public String getDepartment() { return EmployeeDepartment; } public void setDepartment(String Department) { this.EmployeeDepartment = Department; } }
Yukarıdaki kod, Employee sınıfına yönelik alıcı ve ayarlayıcı yöntemlerden oluşur.
Katmanı Görüntüle
Adından da anlaşılacağı gibi görünüm, modelden alınan verilerin görselleştirilmesini temsil eder. Görünüm katmanı, uygulama veya kullanıcı arayüzünün çıktısından oluşur. İstenilen veriyi kontrolör tarafından model katmanından getirilen istemciye gönderir.
EmployeeView sınıfını kullanarak görünüm oluşturduğumuz bir örneği ele alalım.
Çalışan Görünümü.java
// class which represents the view public class EmployeeView { // method to display the Employee details public void printEmployeeDetails (String EmployeeName, String EmployeeId, String EmployeeDepartment){ System.out.println('Employee Details: '); System.out.println('Name: ' + EmployeeName); System.out.println('Employee ID: ' + EmployeeId); System.out.println('Employee Department: ' + EmployeeDepartment); } }
Denetleyici Katmanı
Denetleyici katmanı, kullanıcı isteklerini görünüm katmanından alır ve bunları gerekli doğrulamalarla işler. Model ve Görünüm arasında bir arayüz görevi görür. İstekler daha sonra veri işleme için modele gönderilir. İşlendikten sonra veriler denetleyiciye geri gönderilir ve ardından görünümde görüntülenir.
EmployeeController sınıfını kullanarak denetleyiciyi oluşturan aşağıdaki kod parçasını ele alalım.
EmployeeController.java
// class which represent the controller public class EmployeeController { // declaring the variables model and view private Employee model; private EmployeeView view; // constructor to initialize public EmployeeController(Employee model, EmployeeView view) { this.model = model; this.view = view; } // getter and setter methods public void setEmployeeName(String name){ model.setName(name); } public String getEmployeeName(){ return model.getName(); } public void setEmployeeId(String id){ model.setId(id); } public String getEmployeeId(){ return model.getId(); } public void setEmployeeDepartment(String Department){ model.setDepartment(Department); } public String getEmployeeDepartment(){ return model.getDepartment(); } // method to update view public void updateView() { view.printEmployeeDetails(model.getName(), model.getId(), model.getDepartment()); } }
Ana Sınıf Java dosyası
Aşağıdaki örnek, MVC mimarisini uygulamak için ana dosyayı görüntüler. Burada MVCMain sınıfını kullanıyoruz.
MVCMain.java
// main class public class MVCMain { public static void main(String[] args) { // fetching the employee record based on the employee_id from the database Employee model = retriveEmployeeFromDatabase(); // creating a view to write Employee details on console EmployeeView view = new EmployeeView(); EmployeeController controller = new EmployeeController(model, view); controller.updateView(); //updating the model data controller.setEmployeeName('Nirnay'); System.out.println(' Employee Details after updating: '); controller.updateView(); } private static Employee retriveEmployeeFromDatabase(){ Employee Employee = new Employee(); Employee.setName('Anu'); Employee.setId('11'); Employee.setDepartment('Salesforce'); return Employee; } }
MVC Ana class, çalışan verilerini değerleri girdiğimiz yöntemden getirir. Daha sonra bu değerleri modele iter. Bundan sonra görünümü başlatır (EmployeeView.java). Görünüm başlatıldığında, Denetleyici (EmployeeController.java) çağrılır ve onu Employee sınıfına ve EmployeeView sınıfına bağlar. Sonunda updateView() yöntemi (kontrolör yöntemi), konsola yazdırılacak çalışan ayrıntılarını günceller.
Çıktı:
Employee Details: Name: Anu Employee ID: 11 Employee Department: Salesforce Employee Details after updating: Name: Nirnay Employee ID: 11 Employee Department: Salesforce
Bu şekilde MVC Mimarisini, her katmanın önemini ve Java'daki uygulamasını öğrendik.