Форум программистов, компьютерный форум CyberForum.ru

Что такое композиция ? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Реверс слов в строке http://www.cyberforum.ru/cpp-beginners/thread166178.html
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; int main(int argc, char *argv) { string str; //считывание строки
C++ Удалить из строки комментарии вида '/* ... */". Игнорировать вложенные комментарии. #include <iostream> #include <stdio.h> #include <string.h> using namespace std; int main(int argc, char *argv) { string str; //считывание строки http://www.cyberforum.ru/cpp-beginners/thread166177.html
Заполнение массива числами из заданного интервала C++
Есть массив. Пользователь вводит два числа :минимальный элемент и максимальный.Как заполнить массив числами с этого интервала
C++ Перевернуть строки в файле
Здравствуйте, помогите пожалуйста с проблемой. Задача: Задан текстовый файл. Создать новый файл, в котором строки будут следовать в обратном порядке. У меня есть идея считывать строки и потом записывать считанные в начало файла, но полистав страницы форумов так ничего и не нашел корректно работающего с такой задачей, без создания временного файла, а его нельзя использовать. Посоветуйте как...
C++ Заполнение динамического массива случайными числами http://www.cyberforum.ru/cpp-beginners/thread166126.html
оч нужна помощь написать в консоли программу: динаммический массив размерностью 20 заполняется случайными числами
C++ Амперсанд перед именем функции Недавно столкнулся с таким представлением функции: double &re(void) Так и не понял, зачем ставится амперсанд перед именем. Адрес все равно функция не возвращает.. подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7955 / 4717 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
16.09.2010, 16:16     Что такое композиция ?
Тоже ссылочка ничего так

Цитата 1
1.2.1. Декомпозиция

Способ управления сложными системами известен уже очень давно: "Разделяй и властвуй". Разделение программы на мелкие кусочки, каждый из которых может работать независимо, – вот первый шаг в борьбе со сложностью.

В структурном программировании под декомпозицией понималось разделение алгоритмов, где каждый алгоритм выполнял один из этапов общего процесса. Основой этого принципа является проектирование "сверху вниз".

Можно рассматривать проблему декомпозиции и с другой стороны. Попытайтесь разделить некую систему по признаку принадлежности ее элементов различным абстракциям данной проблемной области.

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

Что лучше: алгоритмическая или объектная декомпозиция? Ответ – обе хороши (или не достаточно хороши). Разделяя алгоритмы, мы концентрируем внимание на порядке действий, разделяя по объектам, мы концентрируемся на агентах, являющихся или объектами, или субъектами действий[1].

Объектная декомпозиция имеет много преимуществ перед алгоритмической, и тем более, если она применяется в начале проектирования большой системы


Цитата 2
3. Понятие декомпозиции в задачах программирования
Само по себе применение объектно-ориентированного языка не вынуждает к
написанию ОО-программ, хотя и упрощает их разработку. Чтобы эффективно исполь-
зовать ООП, требуется рассматривать задачи иным способом, нежели это принято в
процедурном программировании.
Известно утверждение, применимое к естественным языкам, что язык, на кото-
ром высказывается идея, направляет мышление (распространенный пример про снег и
какой-нибудь профессиональный лексикон, который формируется "по потребности"
для решения задач в конкретный предметных областях). Как для компьютерных, так и
для естественных языков справедливо: язык направляет мысли, но не предписывает
их.
Аналогично, объектно-ориентированная техника не снабжает программиста
новой вычислительной мощностью, которая бы позволила решить проблемы, недос-
тупные для других средств. Но ОО-подход делает задачу проще и приводит ее к более
естественной форме. Это позволяет обращаться с проблемой таким образом, который
благоприятствует управлению большими программными системами.
ООП часто называется новой парадигмой программирования. Другие парадиг-
мы: процедурное (языки Паскаль, Си), логическое (Пролог), функциональное (Лисп)
программирование. Парадигма программирования – способ концептуализации, кото-
рый определяет, как проводить вычисления и как работа, выполняемая компьютером,
должна быть структурирована и организована.
Процесс разбиения задачи на отдельные, структурно связанные, части, называ-
ется декомпозицией. При процедурной декомпозиции в задаче выделяются алгоритмы
и обрабатываемые ими структуры данных, при логической – правила, связывающие
отдельные понятия. При ОО-декомпозиции в задаче выделяются классы и способы
взаимодействия объектов этих классов друг с другом.
Центральная часть ООП – техника организации вычислений и данных. В про-
граммировании она явилась совершенно новой, но она базируется на давно известном
подходе к классификации, примененном еще Линнеем (XVIII в., выделение родов и
видов для классификации животных и растений).
 
Текущее время: 15:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru