Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.51/77: Рейтинг темы: голосов - 77, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 3

Пересекающиеся Билиотеки

02.08.2012, 17:19. Показов 14244. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Смысл такой
нужно функции из 1 ой использовать во второй и наоборот =)
как быть?)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.08.2012, 17:19
Ответы с готовыми решениями:

работа билиотеки delay
привет! подскажите пожалуйста кто знает, как работает библиотке delay.h если я пишу _delay_us(60), то получу 60 мксек задержку? или...

VS 2012 (подключение билиотеки)
#include <windows.h> #include <GL/gl.h> #include <GL/glu.h> #pragma comment (lib,"glaux.lib") #pragma comment...

Написание программы с применением билиотеки microsoft excel 10.0 object library
Пишу программу с применением билиотеки microsoft excel 10.0 object library. Эта библиотека - файл excel.exe. Будет ли работать программа на...

27
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
02.08.2012, 17:42
zum
вынести в 3ю
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
02.08.2012, 17:49
Вынести все функции, которые могут использоваться перекрестно в третью библиотеку. Или каждую разделить на 2 части: Core и Interface.

и никак иначе...
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
02.08.2012, 19:56
агентами
екзекуте

всё зависит как курить :D
0
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 83
04.08.2012, 19:10
Цитата Сообщение от savl
Вынести все функции, которые могут использоваться перекрестно в третью библиотеку. Или каждую разделить на 2 части: Core и Interface.

и никак иначе...
Расскажите подробнее о разделении библиотек на core и interface, пожалуйста.
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
05.08.2012, 09:43
ABarmin
Это просто условные названия, назвать можно как угодно.
Смысл в том, чтобы выделить функции по общему признаку в одну библиотеку.
Функции работающие внутри системы, которые вызываются из других функций, записать в одной библиотеке.
Функции, которые вызывают внутренние функции записать в другую библиотеку.
Во второй сделать Use первой.

Мой подход разделять функции по библиотекам в зависимости от работы: внутренние (libName) и для работы с GUI (libName_UI)
Например, у меня куча функций для работы с пользовательским интерфейсом(выбор документов, открытие разных окон, поиск) объединяю их в одну библиотеку libname_UI, в весь механизм поиска осуществляется во внутренней библиотеке libName.
0
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 83
05.08.2012, 09:53
Цитата Сообщение от savl
ABarmin
Это просто условные названия, назвать можно как угодно.
Смысл в том, чтобы выделить функции по общему признаку в одну библиотеку.
Функции работающие внутри системы, которые вызываются из других функций, записать в одной библиотеке.
Функции, которые вызывают внутренние функции записать в другую библиотеку.
Во второй сделать Use первой.

Мой подход разделять функции по библиотекам в зависимости от работы: внутренние (libName) и для работы с GUI (libName_UI)
Например, у меня куча функций для работы с пользовательским интерфейсом(выбор документов, открытие разных окон, поиск) объединяю их в одну библиотеку libname_UI, в весь механизм поиска осуществляется во внутренней библиотеке libName.
А я подумал, что это как-то решает проблемы с циклическими зависимостями. Мы в проекте выделили классы для работы с определенным типом документа в СЭД в одну библиотеку, но так как типов документов много и они сложно связаны между собой встает проблема связывания этих библиотек - возникают циклические зависимости.

Нет никакого а-ля нормальный лоадер для лотуса? Ну, кроме execute |User "some"|, конечно?)
0
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 3
05.08.2012, 16:22
плохо себе представляю как это можно разделить...

те первая библиотека отвечает за документы класс DocumentManager
вторая отвечает за расписание класс TimeManager

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

хоть убейте не представляю как это сделать даже через третью библиотеку
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
05.08.2012, 16:43
Можно:
1) параметры функций проверки сделать типа Variant;
2) для классов DocumentManager и TimeManager сделать базовый класс(ы).
Вы бы хоть описания функций привели, чтобы было о чём рассуждать.
0
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 83
05.08.2012, 19:08
С вариантом не катит совсем, классов уже больше двух десятков, методов в каждом больше 50, без автоподстановки просто замучаешься.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
05.08.2012, 20:09
сделать включение одного класса в другой...
например патерн декоратор http://en.wikipedia.org/wiki/Decorator_pattern

Добавлено: или на русском http://habrahabr.ru/post/86255/
0
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 83
05.08.2012, 20:14
Декоратор - не совсем то.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
05.08.2012, 20:20
Цитата Сообщение от ABarmin
Декоратор - не совсем то.
этпочему?
0
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 83
05.08.2012, 20:22
Задача не расширить функциональность одного класса другим, не дать ему дополнительное поведение динамически, а связать две библиотеки в обе стороны, если они зависят друг от друга.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
05.08.2012, 20:25
задача увязать разный ф-ционал, кот. может наращиваться
0
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 83
05.08.2012, 20:37
Если все части функционала находятся в одной либе, то тут и проблем нет, хоть декоратором, хоть наследованием.

Ладно, смотрим пример.

Библиотека data.lotus.DTProcess


Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Use "data.lotus.DTTask"
 
public class DTProcess as DTDocument
private tasks as DTList
 
public function getTasks() as DTList
if (me.tasks is nothyng) then
set me.tasks = new DTList()
 
получение объектов DTTask волшебным кодом
end if
set getTasks = me.tasks
end function
end class
Библиотека data.lotus.DTTask


Code
1
2
3
4
5
6
7
8
9
10
public class DTTask as DTDocument
private parentProcess as DTProcess
 
public function getParentProcess() as DTProcess
if (me.parentProcess is nothyng) then
получение объекта DTProcess волшебным кодом
end if
set getParentProcess = me.parentProcess
end function
end class
Чтобы второй класс заработал надо подключить data.lotus.DTProcess, что вызовет ошибку компиляции про рекурсивный USE.
0
1 / 1 / 0
Регистрация: 07.12.2009
Сообщений: 1,197
06.08.2012, 01:50
Цитата Сообщение от lmike
например патерн декоратор http://en.wikipedia.org/wiki/Decorator_pattern
Зачем давать на буржуинским, если то же самое есть на русском?

Добавлено:


Цитата Сообщение от ABarmin
Если все части функционала находятся в одной либе, то тут и проблем нет, хоть декоратором, хоть наследованием.
Вы сами ответили на свой вопрос + ещё выше люди всё сказали.
Без одной библиотеки либо без классов-интерфейсов в 3-й общей либо без использования Execute, т.е. так, как вы хотите (вероятно волшебным образом), оно работать не будет, так чего возить г-но по унитазу?
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
06.08.2012, 12:36
Зачем давать на буржуинским, если то же самое есть на русском?
родной язык для большинства "технологий" - англицкий, интерпретация в русской версии может сильно отличаться
0
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 83
06.08.2012, 13:05
Цитата Сообщение от VladSh
Зачем давать на буржуинским, если то же самое есть на русском?

Добавлено: Вы сами ответили на свой вопрос + ещё выше люди всё сказали.
Без одной библиотеки либо без классов-интерфейсов в 3-й общей либо без использования Execute, т.е. так, как вы хотите (вероятно волшебным образом), оно работать не будет, так чего возить г-но по унитазу?
Остается только Execute.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
06.08.2012, 13:38
в практике д.б. стремление к "правильности" архитектуры...
создать кучу кода и либ, в кот. разобраться трудно - чревато
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.08.2012, 13:38
Помогаю со студенческими работами здесь

Пересекающиеся прямые
Пересекающиеся прямые. Заданы уравнения двух пересекающихся прямых на плоскости: у = k1+b1; у = k2+b2. Найти (в градусах и минутах) угол...

Пересекающиеся окружности
здравствуйте,столкнулась с проблемой следующего рода: необходимо построить область,ограниченную окружностями. вот код (часть программы)...

Пересекающиеся окружности C++
Всем привет, никак не могу понять, в чем заключается ошибка моей программы. В Visual Studio работает правильно, а в системе проверки задач...

Пересекающиеся окружности
Народ, есть задачка... Пересекающиеся окружности Даны натуральные числа x(1), y(1), r(1), ... , x(n), y(n), r(n), которые задают...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru