Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3к6с Современные технологии интернет-программирования / 3 Паттерны проектирования MVC, MVP, MVVM

.pdf
Скачиваний:
8
Добавлен:
27.11.2024
Размер:
1.37 Mб
Скачать

View - представление, пользовательский интерфейс.

Model - модель, бизнес-логика.

Controller -

контроллер, содержит логику на изменение модели при определенных действиях.

MVC

11

MVC

Основная идея этого паттерна в том, что и контроллер и представление зависят от модели, но модель никак не зависит от этих двух компонент. Это как раз и позволяет разрабатывать и тестировать модель, ничего не зная о представлении и контроллерах. В идеале контроллер так же ничего не должен знать о представлении, и в идеале для одного представления можно переключать контроллеры, а так же один и тот же контроллер можно

использовать для разных представлений.

12

MVC

Пользователь видит представление и на нем же производит какие-то действия, эти действия

представление перенаправляет контроллеру и подписывается на изменение данных модели,

контроллер в свою очередь производит

определенные действия над моделью данных, представление получает последнее состояние

модели и отображает ее пользователю.

13

MVC

Реализация MVC в качестве GUI-framework:

Cocoa framework;

Java Swing;

Qt4;

GTK+.

Реализация MVC как web-framework:

Java – JSF, Oracle App Framework, Play Framework;

C# – ASP.NET MVC Framework, PureMVC;

Ruby – Ruby on Rails.

14

 

 

Пример использования MVC

Brand.java

package springmvc.model;

public class Brand { private Long id; private String name; private String country;

public String getCountry() { return country;

}

public void setCountry(String country) { this.country = country;

}

15

Пример использования MVC

public void setCountry(String country) { this.country = country;

}

public Long getId() { return id;

}

public void setId(Long id) { this.id = id;

}

public String getName() { return name;

}

public void setName(String name) { this.name = name;

}

16

 

}

Пример использования MVC

package springmvc.model;

import java.math.BigDecimal;

public class Car { private Long id; private Brand brand; private String model;

private BigDecimal price;

public Long getId() { return id;

}

Car.java

17

Пример использования MVC

public void setId(Long id) { this.id = id;

}

public Brand getBrand() { return brand;

}

public void setBrand(Brand brand) { this.brand = brand;

}

public String getModel() { return model;

}

}

18

Пример использования MVC

CarListController.java package springmvc.web;

import springmvc.service.CarManager;

public class CarListController implements Controller {

public ModelAndView handleRequest(HttpServletRequest arg0,HttpServletResponse arg1) throws Exception {

CarManager carManager = new CarManager();

ModelAndView modelAndView = new ModelAndView("carList"); modelAndView.addObject("carList", carManager.getCarList());

return modelAndView;

}

}

19

Пример использования MVC

CarList.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html>

<body>

<h1>Car List</h1>

<c:forEach items="${carList}" var="car"> ${car.brand.name} ${car.model}: ${car.price} <br />

</c:forEach>

</body>

</html>

20