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



Паттерны проектирования 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 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Что такое <<паттерны проектирования>>Программирование. Программирование
спросили в Java API UML
С чего начать учить язык Java начинающему с нуля программисту. Что почитать?
С основ. Как описываются переменные, операции всякие.

dim565
Искусственный
подробнее...
спросили в Шаг
Отзывы о Компьютерной Академии ШАГ. стоит туда ходить или нет?
Всё зависит от тебя, от твоих способностей и трудолюбия.
В Шаге, как и везде есть свои
подробнее...

Обязательность изучения ООП на java и шаблонов проектирования!
Прям при старте изучения программирования - нет (какой нафиг паттерн визитер, если не знаешь как
подробнее...
спросили в Sql Oracle
что подразумевает профессия с таким заголовком - Database Developer (Skills: PL SQL / DB / Java) нашел обьявление
Точная формулировка требований к претенденту:

- разработка баз данных для Oracle
-
подробнее...

Интерфейс в java. Какая логика работы?
----цитата:
Лежит на берегу пруда лягушка, мимо пробегает обезьяна:
- Скажи, лягушка,
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Техника Статика
Кто такой программист 3д графики
В том, что надо уметь работать с 3D графикой, а не только программки разрабатывать. То есть помимо
подробнее...
спросили в Доступнее Образцы
Статичная функция внутри класса. какие данные будут доступны всем образцам класса?
Полагаю, речь идет о С++?

> если мы создаем статичную ПЕРЕМЕННУЮ внутри классаподробнее...

Какой язык программирования лучше?
Сейчас больше количество прикладных программ работают в связке с вэбом. Для новичка я бы не
подробнее...
Шаблон проектирования на Википедии
Посмотрите статью на википедии про Шаблон проектирования
 

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

Имя*

E-mail:*

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