RU EN

UML. Диаграмма классов. Основы.

 

Обозначения:

Свойства класса:

Методы класса:

Зависимость:

Обобщение:

Ассоциация:

Реализация:

Подробнее об ассоциациях:

Ассоциации могут быть уточнены с помощью указания направленности, кратности, указания полюсов и других атрибутов.
Направленные ассоциации:
UML directed accosiation

Аггрегация (используется независимый класс, как часть целого):
UML aggregation

Композиция (класс инстанциируется в использующем классе и не может использоваться самостоятельно):

Комментариев: 0
02.02.2013 16:06


Паттерн Singleton

 

Тип: по классификации GoF относится к порождающим паттернам (Creational Patterns).

Назначение: гарантирует, что у класса есть только один экземпляр и предоставляет к нему глобальную точку доступа.

Где применять:

  • Должен быть только один экземпляр некоторого класса, легко доступный всем клиентам.

  • Единственный экземпляр должен расширяться путём порождения подклассов и клиентам нужно иметь возможность работать с расширенным экземпляром без модификации своего кода.

Пример:

Singleton pattern

Комментариев: 0
01.02.2013 07:51


Паттерн Strategy

 

Тип: по классификации GoF относится к паттернам поведения (Behavorial Patterns).

Назначение: определяет семейство алгоритмов, инкапсулирует их, и делает взаимозаменяемыми.

Где применять:

  • Имеется много родственных классов, отличающихся только поведением. Статегия позволяет сконфигурировать класс, задав одно из возможных поведений.

  • Нужно иметь несколько разных вариантов алгоритма. Например, можно определить два варианта алгоритма, один из которых требудет больше времени, а другой - больше памяти. Стратегии разрешается применять, когда варианты алгоритмов реализованы в виде иерархии классов.

  • В алгоритме содержатся данные, о которых клиент не должен знать. Используйте парттерн Статегия, чтобы скрыть сложные, специфичные для алгоритма структуры данных.

Пример:

Strategy pattern

Комментариев: 0
30.01.2013 07:13


UML из командной строки

 

Для того, чтобы быстро сгенерировать UML схему классов, можно воспользоваться ресурсом yuml.me. Пишем yml-скрипт:

[note: Диаграмма классов API{bg:cornsilk}]
[note: Контроллер в котором инициализируются все фабрики{bg:cornsilk}]-[ApiManager||-init();+run()]
[AbstractApiManager||+init()]^[ApiManager||-init();+run()]
[ApiManager||-init();+run()]-.->[ServiceFactory||+getService();+getOutput();+getError();]

Затем этот скрипт вставляем в поле формы и получается вот такая схема:

Схема

Есть так же версия для использования из командной строки. Скачать можно здесь.

Комментариев: 0
23.11.2012 17:09


Установка Sphinx

 

Для того, чтобы установить Sphinx как расширение PHP, надо предварительно скачать и установить библиотеку и заголовки libsphinxclient, затем и сам Sphinx:

wget https://launchpadlibrarian.net/52743211/libsphinxclient-0.0.1_0.9.9-6ubuntu1%7Eev1_amd64.deb
wget https://launchpadlibrarian.net/52743211/libsphinxclient-0.0.1_0.9.9-6ubuntu1%7Eev1_amd64.deb
sudo dpkb -i libsphinxclient-0.0.1_0.9.9-6ubuntu1~ev1_amd64.deb libsphinxclient-dev_0.9.9-6ubuntu1~ev1_amd64.deb
sudo aptitude install sphinxsearch

Сами ссылки на убунтовские пакеты нашёл по ссылке. Затем скачать из PEAR репозитория расширение и распаковать его в папку php-5.3.15/ext После этого можно приступать к сборке PHP:

cd php-5.3.15/ext
wget http://pecl.php.net/get/sphinx-1.2.0.tgz
tar zxf sphinx-1.2.0.tgz
mv sphinx-1.2.0/ sphinx/
# Возвращаемся в корень php исходников
cd ../
# Собираем и устанавливаем php
./configure --with-sphinx && make && sudo make install
Комментариев: 0
21.11.2012 09:19