December
Новый год 2006
Posted in: Разное (uncategorized) | No Comments
Новый год для многих людей является самым любимым праздником. Как и на любом празднике, без поздравлений тут не обойтись.
Дорогие люди, примите мои искренние поздравления в этот день. Позабудьте все свои беды и неудачи, а в Новый 2006 год возьмите все самое хорошое и доброе, что есть в ваших сердцах. Идите вперед, к новым победам. Желаю вам, вашим друзьям и близким всего-всего.
Будьте счастливы!
С наступающим Новым годом.
(more…)
December
Factory Method - это паттерн создания объектов (creational pattern). Данный шаблон проектирования предоставляет интерфейс для создания экземпляров некоторого класса. В момент создания наследники могут определить, какой класс инстанциировать. пными словами, Фабрика делегирует создание объектов наследникам родительского класса. Это позволяет использовать в коде программы не специфические классы, а манипулировать абстрактными объектами на более высоком уровне.
Паттерн проектирования Factory встречается очень часто. Рассмотрим небольшой пример на Java.
(more…)
December
Кажется, индустрия компьютерных игр движется к краю пропасти. Все больше внимания уделяется графике с ее бесконечными возможностями и все меньше - смысловой нагрузке. Игра, которая не соответствует современным требованиям к компьютерной графике, заранее обречена. Люди разных возрастов годами с нетерпением ждут выхода нового сиквелла, который натренирует их реакцию, научит жестокости и поможет снять напряжение (неизвестно откуда взявшееся, наверное, с предыдущего сиквелла).
Где же вы, старые добрые DOS игры? Игры, которые завоевывали наши сердца. Время от времени ностальгия накрывает меня с головой и я вновь окунаюсь в мир сказок и приключений.
(more…)
December
Этот паттерн проектирования известен также под названием Policy. Суть его состоит в том, чтобы создать несколько моделей поведения (стратегий) для одного объекта и вынести их в отдельные классы. Вот ряд преимуществ данного паттерна:
- позволяет выбирать модель поведения объекта динамически;
- упрощает процесс добавления новых стратегий;
- является альтернативой наследованию;
- избавляет от множества условий (if, case);
- делает еще много всего.
Если вам понятно, что значит каждый из этих пунктов (особенно 5-ый), переходите сразу к примеру на Java. А мы пока рассмотрим эти пункты немного подробнее.
(more…)
December
Порылся в своих архивах за прошлое тысячелетие и обнаружил одну интересную вещь. Это игрушка (если можно так назвать) “Жизнь” (Life), написанная еще на древнем Delphi. После некоторых исправлений, программу удалось переписать под седьмую версию Delphi.
Вернемся к игре. Ее изобретателем был математик Джон Хортон Конвей (John Conway).
Представьте, что у нас есть бесконечное поле в клеточку. Скоростью света назовем скорость, с которой шахматный король передвигается по этому полю. Клеточка может быть либо пустой, либо занятой некоторым организмом. Существует всего лишь три правила “Жизни”:
(more…)
December
Использование Connection Pool (DBCP) в Tomcat
Posted in: Java open-source проекты, Java technologies, J2SE | 7 Comments
В наше время трудно представить себе веб-приложение, которое не использовало бы базу данных для своих нужд. При работе с базой данных очень важно следить за соединениями к базе и вовремя освобождать их. Для этих целей разработчики веб-приложений пишут так называемые Connection Pools (или же используют/исправляют существующие).
Одним из лучших сервлет-контейнеров есть Apache Tomcat. Tomcat хорошо еще и тем, что он использует свой собственный DBCP (Database Connection Pool).
О том, как в полной мере воспользоваться преимуществами DBCP сервера Tomcat, и будет эта статья.
(more…)
December
Java-хостинг в Украине
Posted in: Ваш досуг. Полезные советы | 7 Comments
Спросил у знакомы, поискал в интернете. Нету пока что Java-hosting’a в Украине. Провайдеры, которые предоставляли такие услуги, наверное, посчитали этот хостинг неприбыльным. Но есть альтернатива. п имя ей - co-location.
Co-location - это размещение некоторого оборудования (в нашем случае - сервера) на площадках провайдера.
Вот что мы имеем:
(more…)
December
Шахматная задача
Posted in: Ваш досуг. Полезные советы | 20 Comments
Вашему вниманию предлагается интересная шахматная задача. Белые ставят мат в один ход. Вы наверное скажете: “Да такую задачку решит любой, кто знает как ходят шахматные фигуры.” Не все так просто.
В комментариях уже есть решение этой шахматной задачи. Перед тем как его просмотреть, попробуйте все же одолеть ее самостоятельно.

December
Вернемся к рассмотрению паттернов проектирования. На мой взгляд, паттерн Facade (Фасад) встречается достаточно часто и соответственно заслуживает внимания.
Нужен он вот для чего. При написании кода программисту приходится использовать различные third-party библиотеки. Часто API библиотек довольно абстрактное. Некоторые методы классов могут быть вообще не нужны или содержать параметры, которые не существенны для решения конкретной задачи. Далее, для получения результата могут понадобиться длинные цепочки вызовов методов или же сам результат будет не совсем в подходящем виде. Худший вариант - это использование плохо спроектированной библиотеки, с чем тоже иногда приходится работать.
Все эти проблемы можно решить с помощью паттерна Facade.
(more…)
December
English version of this article you can find here.
Этим постом я открываю цикл статей, посвященных паттернам проектирования. Все написанное мной основывается исключительно на личном опыте.
Паттерны проектирования - это описание некоторых проблем, возникающих во время объектно-ориентированного проектирования, а также способов их решения (как практических, так и теоретических). Иными словами - это примеры правильных подходов к решению типичных задач проектирования.
Одним из самых распространенных паттернов является Singleton (Одиночка). Задача этого паттерна ограничить количество экземпляров некоторого класса. Зачем это может понадобиться? Об этом читайте ниже. Реализовать же паттерн Singleton на языке Java можно следующим образом:
(more…)