1 / 22

Въведение

Въведение. Програмиране с шаблони и рамки. доц. Станимир Стоянов Емил Дойчев. Какво е шаблон?. Развитие на идеята. Кристофър Александър, 1970 г. – няколко книги свързани с шаблоните в строителството и архитектурата. “A Pattern Language”, Oxford University Press, 1977

Télécharger la présentation

Въведение

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Въведение Програмиране с шаблони и рамки доц. Станимир Стоянов Емил Дойчев

  2. Какво е шаблон?

  3. Развитие на идеята • Кристофър Александър, 1970 г. – няколко книги свързани с шаблоните в строителството и архитектурата. “A Pattern Language”, Oxford University Press, 1977 • Тази идея постепенно е възприета и в софтуерните технологии.

  4. Развитие на идеята • Популяризирането на шаблоните в софтуера става с книгата “Design Patterns: Elements of Reusable Object-Oriented Software” • Автори: Ерик Грама, Ричард Хелм, Ралф Джонсън, Джон Влисидес – известни като “Gang of Four”. • Описаните шаблони, не са разработка на авторите, а са резултат от изследване на много проекти и документиране на общите елементи в дизайна.

  5. Литература

  6. Литература

  7. Дефиниция за шаблон • Шаблоните правят връзката между проблеми и решения. • Шаблоните дават възможност да се документира известен повтарящ се (често срещан) проблем и неговото решение в определен контекст.

  8. Използвани термини • Контекст – среда, обкръжение, ситуация или взаимносвързани условия, при които нещо съществува. • Проблем – отворен въпрос; нещо, което трябва да бъде изследвано и решено; обикновено проблемът е ограничен в рамките на контекста. • Решение – отговор на проблемът, в рамките на контекста, който помага за разрешаването му.

  9. Дефиниция за шаблон Всеки шаблон представлява правило, състоящо се от три части, които дават връзката между някакъв контекст, проблем и решение. --- Кристофър Александър, “A Pattern Language” Всеки шаблон представлява правило, състоящо се от три части, които дават връзката между някакъв контекст, някаква система от условия, които се появяват често в този контекст, и някаква софтуерна конфигурация, която позволява тези условия да бъдат изпълнени. --- Ричард Гейбриъл Шаблонът е идея, която е била полезна в един конкретен контекст и вероятно може да бъде използвана и в други. --- Мартин Флауър, “Analisys Patterns”

  10. Характеристики на шаблоните • Общи характеристики на шаблоните: • възникват с натрупването на опит • обикновено са описани в структуриран формат • предотвратяват “откриването на колелото” • съществуват в различни нива на абстракция • подложени са на непрекъснати подобрения • предназначени са за повторна употреба • могат да бъдат използвани в комбинация за разрешаване на по-голям проблем

  11. Категоризация на шаблоните • Най-често използваните категории шаблони са: • Шаблони за проектиране (Design patterns) • Шаблони за архитектура (Architectural patterns) • Шаблони за анализ (Analysis patterns) • Създаващи шаблони (Creational patterns) • Структурни шаблони (Structural patterns) • Поведенчески шаблони (Behavioural pattenrs)

  12. Какво е J2EE • J2EE е платформа за разработване на разпределени корпоративни софтуерни приложения. Има следните х-ки: • Установява стандарти за основните нужди на приложенията: връзка с база данни, бизнес компоненти, MOM (message-oriented middleware), компоненти за web, комуникациони протоколи и т.н. • “Най-доброто по рода си” – имплементации, базирани на отворени стандарти, което защитатва инвестициите в технологиите. • Предоставя стандартна платформа за разработване на преносими компоненти, независими от имплементацията на различните производители – избягва се “обвързването” с конкретен производител. • Намалява времето за достигане до крайният клиент, защото голяма част от инфраструктурата и комуникациите се предоставят наготово от производителите на приложните сървъри • Повишава продуктивността на програмистите защото J2EE се базира на Java и целия корпоративен софтуер може да бъде разработен под J2EE като се използва един език за програмиране – Java • Дава възможност за връзка със съществуващи системи в хетерогенни среди (interoperability).

  13. Слоест подход • Разглеждат се шаблоните, приложими в J2EE • Платформата J2EE е многослойна система • Слой – логическа част от системата, който има точно определени отговорности.

  14. Пет-слоен модел Клиентски слой Клиенти на системата, аплети, приложения и други GUI Представителен слой JSP, Servlets, и други UI елементи Приложен слой EJB и други бизнес обекти J2EE каталог със шаблони Интеграционен слой JMS, JDBC, Connectors, и т.н. Ресурсен слой Бази данни, външни системи, наследени ресурси

  15. Пет-слоен модел Клиентски слой Представя всички устройства или системи, който осъществяват връзка с приложението. Могат да бъдат: • Web browser • Java или друго приложени • Java аплет • WAP телефон • Мрежово приложение • и др.

  16. Пет-слоен модел Представителен слой Капсулира логиката, свързана с обслужването на клиента. Този слой: • приема заявките на клиента • управялва сесиите • контролира достъпа до бизнес услугите • преобразува данните в удобен за клиента вид

  17. Пет-слоен модел Приложен слой Предоставя бизнес услугите, необходими на клиентите. Съдържа бизнес данните и бизнес логиката. EJB са предпочитаните компоненти в този слой.

  18. Пет-слоен модел Интеграционен слой Този слой е отговорен за осъществяване на комуникацията с външни ресурси и системи, като хранилища на данни и външни приложения.

  19. Пет-слоен модел Ресурсен слой Този слой съдържа данните и външните ресурси.

  20. Шаблони за представителния слой • Intercepting Filter – улеснява пре- и пост-обработката на заявките. • Front Controller – предоставя централизиран контрол за управление на заявките. • Context Object – капсулиране на състоянието независимо от използвания протокол. • Application Controller – централизира и модулизира управлението на действията и представянето. • View Helper – капсулира логиката, която не е свързана с форматирането на изхода в т.нар. Helper компоненти. • Composite View – създава резултат (представяне) от отделни субкомпоненти. • Service to Worker, Dispatcher View – комбинира Front Controllerи View Helper с диспечърски компонент.

  21. Шаблони за приложния слой • Business Delegate – капсулира достъпът до бизнес услуга. • Service Locator – капсулира откриването на услуги и компоненти. • Session Façade – капсулира компонентите от бизнес слоя и предоставя ограничен достъп за отдалечените клиенти. • Application Service – централизира и обобщава поведение за да предостави унифициран слой за услуги. • Business Object – разделя бизнес данни и логика, чрез обектен модел. • Composite Entity – имплементира персистентни Business Objects. • Transfer Object – пренасяне на данни между словете. • Transfer Object Assembler – съставя сложен Transfer Object от множество източници на данни. • Value List Handler – управлява търсенето, кеширането на резултатите и предоставя възможност за избор на елементи от резултатите.

  22. Шаблони за интеграционния слой • Data Access Object – капсулира достъпа до хранилищата за данни. • Service Activator – получава съобщения и асинхронно извиква методи за обработка. • Domain Store – предоставя прозрачен механизъм за съхраняване на бизнес обекти. • Web Service Broker – предоставя достъп до една или повече услуги, чрез XML и web протокол.

More Related