0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: java se, паттерны проектирования, программирование на java, разработка на java</p>
1
<p>Теги: java se, паттерны проектирования, программирование на java, разработка на java</p>
2
<p>Для чего программисту нужны<strong>паттерны проектирования</strong>? Ответ, на первый взгляд, очевиден. Для того, чтобы проектировать. И это правда. Но я сейчас предложу менее очевидный вариант ответа, который, на мой взгляд, даже более важен, чем разработка хорошей архитектуры.<strong>Знание паттернов</strong>требуется программистам<strong>для общения</strong>. Продемонстрируем это на простом примере.</p>
2
<p>Для чего программисту нужны<strong>паттерны проектирования</strong>? Ответ, на первый взгляд, очевиден. Для того, чтобы проектировать. И это правда. Но я сейчас предложу менее очевидный вариант ответа, который, на мой взгляд, даже более важен, чем разработка хорошей архитектуры.<strong>Знание паттернов</strong>требуется программистам<strong>для общения</strong>. Продемонстрируем это на простом примере.</p>
3
<h2>Сравните два разных диалога:</h2>
3
<h2>Сравните два разных диалога:</h2>
4
<p><em>- Нам нужно разработать софт для АТМ. Чтобы можно было снимать деньги разного номинала и проверять баланс остатков в автомате.</em><em>- Ок, давайте добавим класс для каждого типа купюр и сделаем так, чтобы они по цепочке обрабатывали запрос на снятие денег, передавая остаток, который не могут обработать дальше по цепочке. А чтобы посчитать остаток в автомате, добавим специальный класс, который позволит перемещаться по цепочке и складывать остатки в каждой ячейке.</em><em>- Э-э... Не понял, объясните пожалуйста.</em></p>
4
<p><em>- Нам нужно разработать софт для АТМ. Чтобы можно было снимать деньги разного номинала и проверять баланс остатков в автомате.</em><em>- Ок, давайте добавим класс для каждого типа купюр и сделаем так, чтобы они по цепочке обрабатывали запрос на снятие денег, передавая остаток, который не могут обработать дальше по цепочке. А чтобы посчитать остаток в автомате, добавим специальный класс, который позволит перемещаться по цепочке и складывать остатки в каждой ячейке.</em><em>- Э-э... Не понял, объясните пожалуйста.</em></p>
5
<p><strong>Или:</strong><em>- Нам нужно разработать софт для АТМ. Чтобы можно было снимать деньги разного номинала и проверять баланс остатков в автомате.</em><em>- Ок, давайте используем Chain-of-responsibility для снятия и Iterator для остатков.</em><em>- Всё понятно, делайте.</em></p>
5
<p><strong>Или:</strong><em>- Нам нужно разработать софт для АТМ. Чтобы можно было снимать деньги разного номинала и проверять баланс остатков в автомате.</em><em>- Ок, давайте используем Chain-of-responsibility для снятия и Iterator для остатков.</em><em>- Всё понятно, делайте.</em></p>
6
<p>А вам какой диалог понятнее? Пожалуй, ответ очевиден. Тем не менее, ждём ваших комментариев!</p>
6
<p>А вам какой диалог понятнее? Пожалуй, ответ очевиден. Тем не менее, ждём ваших комментариев!</p>
7
7