Паттерны или шаблоны проектирования

В этом посте хотелось бы взглянуть на паттерны проектирования или как их еще называют шаблоны проектирования, попытаться описать простым и доходчивым языком о том, что же это такое. Надеюсь, что проведенные аналогии будут понятны и позволят быстро усвоить основную мысль, так сказать суть дела. Начнем же. Не случайно выбрал картинку для поста — долго искал по слову «проектирование». Давайте посмотрим, что здесь изображено. Здесь изображена квартира в разрезе, так как будто кто-то проектирует её со стороны и расставляет всё необходимое для удобства и быта. Давайте подумаем и представим себе, чем собственно занимаются такие люди. Люди, которые делают это, то есть проектируют обстановку квартиры не изобретают ничего сами и уж тем более не создают что-то новое своими руками, а берут уже готовые вещи — столы, стулья, телевизоры, сантехнические узлы и устанавливают их туда, где им самое место. Очень похожая ситуация складывается при разработке приложений. Существуют конструкции, которые изобретены до нас и наша задача воспользоваться ими, разместив в подходящем месте. Такие конструкции и есть паттерны проектирования. Паттерн проектирования — это некая конструкция, которая состоит из набора абстракций (классов). Эти абстракции определенным образом взаимодействуют между собой и решают какую-то задачу. К примеру, перед проектировщиком внутренностей квартиры стоит задача что-то поставить в ванну. Что он делает? Он руководствуясь размерами ванного помещения и исходя из еще каких-то требований (материал, стоимость, какие-то предпочтения) выбирает классическую ванну или душевую кабину, или может быть даже джакузи, или всё сразу. Переносимся в наш огород. Проектировщик приложения. Перед ним стоит задача определенным образом спроектировать взаимодействие приложения с базой данных. Желательно, чтобы решение было гибкое и, к примеру, имелась возможность перейти от Oracle к MySQL без особых трудностей. Проектировщик приложения для этих целей использует соответствующий паттерн или даже комбинацию паттернов. Получается, что паттерны рашают не какие-то узкоспециализированные задачи, а задачи, с которыми сталкивалось много человек и не раз, и даже не два.

Паттернов проектирования много и количество их я точно не знаю 🙂 Однако, как я смог убедиться на не очень большом опыте их использования — смысл использования есть. Код лучше структурирован и человек, знающий паттерны, быстрее поймет принцип работы кода. А незнающий тоже думаю поймет и научится тому, как можно использовать паттерны. Потму что использовать паттерны это круто, это удобно и я советую их сипользовать. Однако, тут как и в любом деле необходимо знать меру и правильно использовать паттерны. Не стоит ставить телевизор в туалете или унитаз на балконе 🙂

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

Реклама

5 Responses to Паттерны или шаблоны проектирования

  1. Gorets says:

    отлично =)

  2. corri says:

    Сейчас в универе как раз проходим паттерны..Очень нужная вещь для любого программиста если он хочет чего-нибудь добиться. во-первых — код структурируется,как и писал автор,во вторых шаблоны позволяют модифицировать программу не затрагивая её сути. Т.е. если заказчик вдруг скажет что ему надо в функционале ещё чего-нибудь добавить существенное,то не надо будет перекорячивать всю программу,а только унаследоваться от одного класса и дописать соответствующий функционал..

    как итог использования шаблонов — структурированный код,отсутствие повторяющихся элементов automagicaly-методов ( функции которые описывают весь функционал программы) и automagicaly-button`ов легкая модифицируемость и высокая гибкость программного кода

    вобщем учите паттерны 🙂

  3. Faust says:

    А где можно почитать про паттерны? Может кто поделится парой ссылок?

  4. Олег says:

    пропиши в гугле паттерн mvc там куча ссылок

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: