Главная » Статьи для тега "является"

Audio Toolbox iPhone

Добавлено Дата: 22 May, 2011 категория: iPhone

Платформа Audio Toolbox является новой для Leopard и доступна для настольных систем и iPhone. Audio Toolbox как расширение Core Audio предоставляет множество низкоуровневых функций для обработки, воспроизведения и записи звука на уровне потока битов. Платформа включает множество API, обеспечивающих доступ к необработанным данным аудиофайлов и множество инструментов конвертации.

Читать »

CRC-карточки UML

Добавлено Дата: 20 May, 2011 категория: UML

 

Одним из наиболее полезных приемов, соответствующих хорошему стилю ООП, является исследование взаимодействия объектов, поскольку его цель состоит в том, чтобы исследовать работу программы, а не данные. CRC-диаграммы (Class-Responsibility-Collaboration, класс-обязанность-кооперация), придуманные Уордом Каннингемом (Ward Cunningham) в конце 80-х годов, выдержали проверку временем и стали высокоэффективным инструментом решения этой задачи (рис. 4.6). И хотя они не входят в состав UML, все же являются очень популярными среди высококвалифицированных разработчиков в области объектных технологий.

Читать »

Проектирование по контракту основы UML

Добавлено Дата: 19 May, 2011 категория: UML

 

Проектирование по контракту (Design by Contract) – это метод проектирования, являющийся центральным свойством языка Eiffel. И метод, и язык разработаны Бертраном Мейером [33]. Однако проектирование по контракту не является привилегией только языка Eiffel, этот метод можно применять и в любом другом языке программирования.

Читать »

Что такое допустимый UML?

Добавлено Дата: 16 May, 2011 категория: UML

 

На первый взгляд, ответить на этот вопрос легко: допустимый UML — это язык, определенный в соответствии со спецификацией. Однако на практике ответ несколько сложнее.

 

Существенным в вопросе является то, на каких правилах базируется UML: описательных или предписывающих. Язык с предписывающими правилами (prescriptive rules) управляется официальной основой, которая устанавливает, что является, а что не является допустимым языком, и какое значение вкладывается в понятие высказывания языка. Язык с описательными правилами (descriptive rules) – это язык, правила которого распознаются по тому, как люди применяют его на практике. Языки программирования в основном имеют предписывающие правила, установленные комитетом по стандартам или основными поставщиками, тогда как естественные языки, такие как английский, в основном имеют описательные правила, смысл которых устанавливается по соглашению.

Читать »

Переопределяя метод equals, всегда переопределяйте hashCode

Добавлено Дата: 14 May, 2011 категория: Java, Советы

 

Распространенным источником ошибок является отсутствие переопределения метода hashCode. Вы должны переопределять метод hashCode в каждом классе, где переопределен метод equals. Невыполнение этого условия приведет к нарушению общих соглашений для метода Object.hashCode, а это не позволит вашему классу правильно работать в сочетании с любыми коллекциями, построенными на использовании хэш-таблиц, в том числе с HashMap, HashSet и HashTable.

Читать »

Отсутствие экземпляров обеспечивает закрытый конструктор

Добавлено Дата: 14 May, 2011 категория: Java, Советы

 

Время от времени приходится писать класс, который является всего лишь собранием статических методов и статических полей. Такие классы приобрели дурную репутацию, поскольку отдельные личности неправильно пользуются ими с целью написания процедурных программ с помощью объектно-ориентированных языков. Подобные классы требуют правильного применения. Их можно использ~ать для того, чтобы собирать вместе связанные друг с другом методы обработки простых значений или массивов, как это сделано в библиотеках java.lang.Math и java.util.Arrays, либо чтобы собирать вместе статические методы объектов, которые реализуют определенный интерфейс, как это сделано в j ауа.util.Collections. Можно также собрать Методы в некоем окончательном (fina!) классе вместо того, чтобы заниматься расширением Класса.

Читать »

Выбор процесса разработки UML

Добавлено Дата: 14 May, 2011 категория: UML

 

Я твердый сторонник итеративного процесса разработки. Как я уже говорил в этой книге: «Применяйте итеративный метод разработки только в проектах, которым вы желаете успеха*.

Может быть, кому-то покажется, что это болтовня, но с годами я’ста-новлюсь все более агрессивным сторонником итеративной разработки. При грамотном применении она является весьма важным методом, способным помочь в раннем выявлении возможных рисков и в улучшении управляемости процессом разработки. Однако это не означает, что можно вовсе обойтись без руководства проектом (хотя, если быть справедливым, я должен отметить, что некоторые используют ее именно для этой цели). Итеративная разработка требует тщательного планирования. Но это весьма надежный подход, и поэтому любая книга по объектно-ориентированной разработке рекомендует его применять – и не без основания.

Читать »

При необходимости создавайте резервные копии

Добавлено Дата: 12 May, 2011 категория: Java, Советы

 

Одно из особенностей, благодаря которой работа с языком программирования Java доставляет такое удовольствие, является его безопасность. Это означает, что в отсутствие машинно-зависимых методов (native method) он неуязвим по отношению

Читать »

Интерфейс EJBMetaData

Добавлено Дата: 16 April, 2011 категория: Java, Web

public interface EJBMetaData

Интерфейс позволяет получать мета-данные о серверном компоненте EJB. Мета-данные используется при создании приложения и размещении приложения на сервере, а также при использовании языков сценариев с доступом к серверным компонентам EJB. не является удаленным интерфейсом. Класс, имплементирующий этот интерфейс, должен иметь тип RMI/IDL и быть сериализуемым (serializable).

Читать »

Конвертеры типов

Добавлено Дата: 19 February, 2011 категория: C#, Компоненты

Для того чтобы редактор свойств понял, что наше сложное свойство можно редактировать с помощью редактора строк, необходимо создать специальный класс, называемый конвертером типа (type converter). Конвертер типа является наследником класса System.ComponentModel.TypeConverter. Для реализации полнофункционального наследника необходимо, как минимум, перекрыть следующие методы:

Читать »

Futility pruning

Добавлено Дата: 13 January, 2011 категория: Игры, Теория

Автор идеи — Эрнст Хайнц, применивший ее в своей программе DarkThough. Сама идея очень проста. На последних двух полуходах перебора оценка не­точна, и можно, основываясь на текущей статической оценке позиции и характеристике узла, подрезать целую ветвь поиска. Нельзя с определен­ностью сказать, что вносит погрешность, т. к. в двух послед­них узлах программа и так постоянно ошибается. Можно сказать, что ошибки будут, но несколько другого характера.

Читать »

Хеш-таблицы одним из самых мощных способов повышения про­изводительности компьютера

Добавлено Дата: 19 December, 2010 категория: Игры, Структуры данных, Теория

Хеширование является одним из самых мощных способов повышения про­изводительности компьютера. Не знаю, кому как, а мне хеширование всегда не очень нравилось из-за своей половинчатости, приблизительности, если можно так сказать. Хеширование не является точным методом. Тем не ме­нее альтернативы ему нет, и если мы хотим получить высокие скоростные показатели, хеширование нам потребуется.

Читать »

Дробный Depth

Добавлено Дата: 6 December, 2010 категория: Игры, Теория

Нужно просчитывать глубже многие ходы, но это может привести к взрыву дерева поиска, и только шахи являются стопроцентно корректными расши­рениями на любой глубине. Возникла следующая идея: делать Depth дроб­ным. В каждом узле Depth уменьшается не на 1, а на 4. Начальное значение Depth тоже равно глубине просчета, умноженной на 4. Таким образом, в за­висимости от нашего представления о правдоподобности данного хода, мы можем при одних ходах увеличивать Depth на 4 (при шахах), а при других — на меньшую величину. Приведем примерный список расширений:

Читать »