Форум Сообщества Аналитиков

Общий раздел => Для всех => Тема начата: m2broth от 27 Апреля 2011, 14:30:27

Название: Вопрос по документированию классов
Отправлено: m2broth от 27 Апреля 2011, 14:30:27
Каким образом можно описать принцип работы класса в системе, если например класс содержит только набор функций, которые никак не взаимодействуют друг с другом? не могу что-то понять
Название: Re: Вопрос по документированию классов
Отправлено: bas от 27 Апреля 2011, 14:39:12
словами
Название: Re: Вопрос по документированию классов
Отправлено: m2broth от 27 Апреля 2011, 14:50:07
словами
это понятно...но я не могу понять одного - как можно описать принцип работы класса, функции которого используются в различных других классах и которые вообще не взаимодействуют друг с другом...ведь под принципом понимается что-то наподобии "последовательности действий" или каких то правил, а как в моем случае может быть последовательность действий и правил если функции класса не связаны?
Название: Re: Вопрос по документированию классов
Отправлено: IAFedorov от 27 Апреля 2011, 16:03:48
это понятно...но я не могу понять одного - как можно описать принцип работы класса, функции которого используются в различных других классах и которые вообще не взаимодействуют друг с другом...ведь под принципом понимается что-то наподобии "последовательности действий" или каких то правил, а как в моем случае может быть последовательность действий и правил если функции класса не связаны?
У класса не функции, а "методы".
Что значит функции класса не связаны?
Должен же быть какой-то управляющий поток или алгоритм который выполнятся: создает экземпляры классов, вызывает их методы, уничтожает объекты и т.п.
 
Вы в вашем тексте сами ответили на ваш вопрос - диаграмма последовательности.
http://www.intuit.ru/department/pl/umlbasics/8/
Название: Re: Вопрос по документированию классов
Отправлено: Galogen от 27 Апреля 2011, 17:49:11
Принцип объектно-ориентированного проектирования, основанный на разделении обязанностей, предполагает, что каждый класс имеет собственную специализацию, т.е. исполняет точно очерченную обязанность(обязанности).

Эти обязанности реализуются методами. Чаще всего методы - это те услуги, которые предоставляет класс, т.е. его интерфейс. Такми образом изначально методы ориентированы на другие классы. Они вполне себе могут быть и не связаны. Почему они должны быть связаны?

Основанием наличия тех или иных методов у класса является анализ взаимодействия его объектов с другими объектами программы с учетом различных принципов и факторов
Название: Re: Вопрос по документированию классов
Отправлено: Thyestes от 28 Апреля 2011, 17:34:26
Цитировать
...принцип работы класса в системе...
Не понятно что значит описать?

Класс специфицирует внутренние данные объекта и его представление, а также операции, которые объект может выполнять.

Имеется ввиду такое понятие как абстрактный класс ?

Класс называется абстрактным, если его единственное назначение – определить общий интерфейс для всех своих подклассов.
Абстрактный класс делегирует реализацию всех или части своих операций подклассам, поэтому у него не может быть экземпляров. Операции, объявленные, но не реализованные в абстрактном классе, называются абстрактными.

Абстрактные классы удобны на фазе анализа требований к системе, так как они позволяют выявить аналогию в различных, на первый взгляд, операциях, определенных в анализируемой системе.

= = =
К вложению
Каждая из категорий служащих представлена своим подклассом класса служащий, от которого они наследуют атрибут годовой_доход и операцию подсчет_выплат. Но подсчет выплат для каждой категории служащих производится по-своему, с учетом значений их собственных (неунаследованных) атрибутов; поэтому в каждом из подклассов операция подсчет_выплат переопределяется. Следовательно, в суперклассе операция подсчет_выплат может быть определена произвольным образом, так как она никогда не будет выполняться. В то же время сигнатуры всех операций подсчет_выплат в суперклассе и в подклассах должны быть одинаковыми (иначе это будут разные операции). Из сказанного следует, что в суперклассе можно задать только сигнатуру операции подсчет_выплат, это обеспечит одинаковые сигнатуры этой операции во всех подклассах. Методы, реализующие операцию подсчет_выплат, достаточно определить только в подклассах класса служащий. Суперкласс, в котором заданы только атрибуты и сигнатуры операций, но не определены методы, реализующие его операции, называется абстрактным классом. Методы, реализующие операции абстрактного класса, определяются в его подклассах, которые называются конкретными классами.