![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Ту тему я буду держать закрытой. Все вопросы, предложения и обсуждение - сюда.
-------------------- |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Прочитал статью про паттерны. Правильно ли я понял, что паттерны - не специфические классы и интерфейсы Java и С#, а просто способ организации собственых классов? То есть, например, Singleton - не класс, реализующий какой-нибудь интерфейс Singletonable (
![]() -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Их еще многo ![]()
Вот 2 определения паттернов: 1. Паттерн - это набор правил, описывающих как выполнить определенную задачу в разработке ПО. (Прии) 2. Паттерн идентифицирует и определяет абстракцию, которая вышe уровня отдельногo класса или интерфейса (Гамма) Паттерн - это некий способ организации объектов, при котором взаимодействующие объекты знают о внутреннеm устройствe друg другa кak можно меньше. -------------------- |
||||
|
|||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Таким образом, эти термины используются для стандартизации концепций организации программ и облегчения взаимопонимания между разработчиками, да? Т.е. если я говорю, что мой класс является Composite-классом, то мой коллега понимает, что я использую структуру, подобную той, которая приведена тобой в примере.
А где можно найти более полное описание? -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Помимо этогo, использованиe паттернов улучшает реюзабилити кода, поддрживаемость, и пр.
В книгах E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns. Elements of Reusable Object-Oriented Software. James W. Cooper, The Design Patterns Java Companion S. Stelting, O.Maasen, Applied Java Patterns еще сотнe других. Ну а я каждый день дополняю тему, есл ты заметил. -------------------- |
||||
|
|||||
borisvolfson |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 3.2.2005 Репутация: нет Всего: 3 |
IMHO, самое главный плюс паттернов они делают код более гибким для дальнейший модификации...
|
|||
|
||||
Wanderer2019 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
вот пишу с использованием DAO! вещь конечно хорошая, но очень много подготовки перед реальным использованием... крму интересно можно почитать здесь Data Access Object
|
|||
|
||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 6 Всего: 24 |
Вот тут эта книга есть в электронном виде, к тому же на русском : http://techlib.111mb.com/cgi/dl.php?a=0.1&...gn_patterns.tgz -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Во-первых, речь здесь не об энтерпрайз приложениях, а о J2SE / C# Windows Forms. Во-вторых, тема создана для обсуждения а не для ироничных бессодержательных замечаний. Не нравится изложение - напиши свое или по крайней мере вырази свое мнение в более содержательной форме. В-третьих, зарегистрируйся, т.к. разгваривать с гостем бессмысленное занятие. Иначе я просто буду удалять все твои посты чтоб время на разговоры с неизвестно кем не тратить.
Да, про j2ee паттерны тоже следовало бы написать ![]() -------------------- |
||||
|
|||||
Souljah |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 24.12.2004 Репутация: нет Всего: 7 |
||||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Видимо мне следовало это сразу сказать, но изложение паттернов является сугубо субъективным, кроме того я пользуюсь принципом KISS - Keep It Simple Stupid. На написание новой книжки Гаммы и др. Reloaded у меня времени и таланта нет.
Конечно, Комманд петтерн, Action'ы в Java и пр - все это хорошо, но лично мне не приходилось применять этот паттерн в j2se. -------------------- |
|||
|
||||
NotGonnaGetUs |
|
|||
Unregistered |
Встречался апплет для редактирования html (не как html-текст, а что-то вроде word'a). Там была проблема - жрались ресурсы дико. Стал разбираться, оказалось, для Undo/Redo операций html преобразовавывался из внутреннего формата в String и сохранялся. Затем в обратную сторону, если надо было произвести откат. Внутренний формат - сложно проиндексированный лист с кучей надстроек, для быстрого поиска строк. Заменив все операции модификации внутреннего представления на комманды (по одному классу для каждой операции, класс содержит методы execute() & undo() ), добавив стек для этих комманд, получилось а) уменьшить память потребляемую программой в несколько раз. б) увеличить время отклика на порядки для больших html-ек (> 1мб) в) увеличить глубину ундо/редо - в разы ![]() На основе этого паттерна строятся легко перенастраивамый контролллеры (хотя бы в рамках MVC). Можно прописать в xml'ке соотвествие управляющих действий командам и не пересобирая код, менять поведение системы. В качестве такой системы может выступать юзер интерфейс, логика премещения "таракана" встречающего препятствия, и т.п. ![]() Маверик весь построен на комманд паттерне(правда это j2ee). Несколько сумбурно вышло, но что поделать. Рабочий день кончился, мозг отключается ![]() |
|||
|
||||
djGri |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 21.2.2005 Репутация: 1 Всего: 3 |
2 Domestic Cat
Вопрос про Singleton: 1. Как насчет запрета на clone() ? |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Само собой, подразумевается что класс нe наследует от Cloneable.
-------------------- |
|||
|
||||
Slanix |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 30.1.2004 Репутация: нет Всего: 1 |
Расскажите, плз, так же доступно, о паттерне State Machine.
--------------------
Я буду искать лица Твоего, Господи Пс.26:8 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |