паттерны программирования



Паттерны проектирования java

Автор Интернет везде задал вопрос в разделе Другие языки и технологии

Что такое <<паттерны проектирования>>Программирование. Программирование и получил лучший ответ

Ответ от Modern Иванов[гуру]
Это стандартные приёмы организации классов и программ. Маленький пример. Он не совсем точен, но понятен для понимания.
Например, твоя прога работает с БД. Для этого у главной формы есть несколько методов. Например нахождение записи в таблице по ID
public MyObject find(int id){
//создаём соединение с БД
//Statement stmt = con.createStatement();
// Выполняем запрос
ResultSet rs = stmt.executeQuery( "SELECT a, b, c FROM Table1 WHERE id="+id.toString());
//из rs получаем наш нужный объект и возвращаем его
return myobj;
}
Такие же ф-ции есть для удаления из бд записей, обновления и др.
Но что, если мы решили поменять БД, или вообще отказаться от них, а данные получать от вэб-сервисов в XML.Для этого придётся переписать все эти ф-ции. А потом нам скажут, что нужно вернуть БД и данные могут получаться или из БД, или от вэб-сервисов. И мы опять будем всё переписывать. И так будет каждый раз, когда что то поменяется и источником данных.
И тогда встаёт вопрос. как постараться сделать более универсальный код, чтоб сократить всякие переписывания? Давай те сделаем промежуточный слой, между клиентской формой и возможным источником данных. Опишем его интерфейс.
public interface Fasad{
MyObject findForId(int id);
void deleteForId(int id);
...
}
Опишем реализации интерфейса для БД и XML
public class DBFasadImp implements Fasad{
//реализовали методы интерфейса для работы с БД
}
public class XMLFasadImp implements Fasad{
//реализовали методы интерфейса для работы с XML
}
Теперь в форме мы напишем методы так
Fasad f=new DBFasadImp(); //или new XMLFasadImp(); в зависимости от обстоятельств
public MyObject find(int id){
return f.findForId(id);
}
public void delete(int id){
f.deleteForId(id);
}
Клиенту (форме) теперь пофиг как получаются данные, он знает, что нужно обратиться к объекту f и у него вызвать нужный метод. Теперь, если будет нужно как то изменить источник данных, то это совсем не затронет форму. Теперь разработчикам формы не нужно думать о БД. У них есть промежуточный слой. Они знают его интерфейс и используют его. Так вот такая структура описывается паттерном "Фасад".Создаётся фасадный класс, который управляет доступом к данным. И если ты в разговоре с другими программистами скажешь "пацаны, я здесь применил фасад",то все поймут общую структуру твоего решения. Так и другие паттерны. Они описывают шаблон решения какой то распространённой проблемы. Во-первых, тебе не нужно выдумывать велосипед, решая проблему. Во-вторых, тебе проще будет объяснить другим, что ты тут наваял.
Но паттерны- это довольно абстрактные понятия и они начинают хорошо пониматься, когда столкнёшься с ними в реальной жизни. Ты их и сейчас уже применяешь, только пока не догадываешься об этом.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Что такое <<паттерны проектирования>>Программирование. Программирование
Шаблон проектирования на Википедии
Посмотрите статью на википедии про Шаблон проектирования
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*