150 likes | 320 Views
Рамки. Програмиране с шаблони и рамки. доц. Станимир Стоянов Емил Дойчев. Дефиниции. Система от повторно използваеми и приспособими класове и приспособими клас библиотеки ( възможност за настройка : нови под-класове, предефиниране и/или разработване на празни операции ) (Balzert 96).
E N D
Рамки Програмиране с шаблони и рамки доц. Станимир Стоянов Емил Дойчев
Дефиниции Система от повторно използваеми и приспособими класове и приспособими клас библиотеки (възможност за настройка: нови под-класове, предефиниране и/или разработване на празни операции) (Balzert 96) Множество от взаимодействащи си класове, които изграждат проект за повторно използване за специфичен тип софтуер… Рамката (framework) определя архитектурата на приложението… обхваща проектни решения, които са общи за даден приложен домейн. (Gamma 94)
MVC шаблон • MVC – Model-View-Controller (Model 1) • Шаблон за представителния слой • Разделя функционалността в три взаимодействащи си части – Модел, Визуализация и Контролер • Всяка част съответства на три технологии – beans, JSP и Servlets
Data (Beans properties) Model (beans) View (JSPs) Display info (HTML) Data (<jsp:getProperty>) Event info (parameters, action URLs) Event (request) Event (forward) Controller (servlet) Event (request) Browser MVC
MVC • Компонентите от MVC архитектурата работят по следния начин: • Моделът съдържа данните • Визуализацията извлича данните и генерира динамичен резултат към клиента • Контролерът предоставя слой за логическата обработка и извиква моделът и визуализацията
MVC - Модел • Моделът представя бизнес логиката на приложението • Капсулирането на бизнес-ролите в компоненти подпомага тестванет, повишава качеството и предразполага към многократно използване • Моделът се разделя на два вида компоненти: • State Components • Action Components
MVC - Модел • State Components – дефинират текущия набор от стойности в Моделът и съдържат методи за промяна на тези стойности. В тези методи има и малка част от бизнес-логиката. • JavaBeans и Enterprise JavaBeans могат да бъдат използвани като такива компоненти
MVC - Модел • Action Components дефинират възможните промени в State компонентите в резултат на събития. • Бизнес логиката също определя Action компонентите • В прости системи бизнес-логиката може да се съдържа в контролера, но това не се препоръчва.
MVC - Визуализация • Визуализацията – логиката за визуализиране. • Визуализиращите компоненти: • извличат текущото състояние от моделът и предоставят потребителски интерфейс за специфичнят проткол (в нашият случай HTTP) • Предоставят специфичен набор от събития, които могат да бъдат задействани от потребителя • JSP са удобни за създаване на визуализиращи компоненти
MVC - Контролер • Контролерът е свързващото звено в MVC архитектурата • Контролерът е отговорен за: • получаване на събитията • определяне на правилния обработчик на събитието • извикване на обработчика • стартиране на генерирането на правилният отговор
MVC - Контролер • В MVC архитектурата контролерът действа като диспечер. Той трябва да се справя със следните задачи: • Сигурност • Идентификация на събития • Подготовка на моделът • Обработка на събитията • Прихващане на грешки • Стартиране на изпращането на отговорите
Apache Struts • Struts имплементира MVC Model 2JSP архитектура, която използва: • Сървлет като диспечер на заявки • JavaBean, който съдържа данните за заявката • JSP, което показва данните на потребителя • Struts е opensource проект на Apache Software Foundation (http://struts.apache.org)
Model 2 • В Model 2 архитектурата се използват: • сървлет, който получава заявките • сървлетът предоставя задачата за извличане на данните на JavaBean, който се обръща към EJB или бази данни и след като извлече данните връща контролът обратно на сървлета • сървлетът препраща заявката към JSP което генерира HTML отговорът като използва данните от JavaBean и собствен HTML код • след генерирането отговорът се изпраща обратно към браузъра
Model 2 • Model 2 архитектурата позволява отделянето на логиката за извличане на данните и от JSP компонента и от сървлета • Разделянето на контролът, бизнес логиката и представянето е разликата между Model 1 и Model 2 архитектурите