Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.02.2014, 17:59
Annihilator Annihilator вне форума
Прохожий
 
Регистрация: 16.06.2013
Сообщения: 29
Версия Delphi: Delphi XE 2
Репутация: 10
По умолчанию Инкапсуляция и перекрестное объявление модулей

Здравствуйте, помогите советом, пожалуйста. Суть проблемы в том, что private поля класса доступны в пределах модуля, и есть цель их скрыть. При разделении на модули, натыкаюсь на перекрестное объявление модулей, при том, ни какие
Код:
implements
Uses
не помогут, так как оба класса объявлены в интерфейсных секциях.

Код:
unit 1;
intefrace
...
type
TA = class
FX:TB;
end;

unit 2;
interface
...
type
TB = class
FV:TA;
end;
В общем виде, как то так. Одно из решений, которое мне приходит в голову, это сделать примерно так:
Код:
unit 1;
interface
...
TA=class
FX:TB;
end;

unit 2;
interface
...
TB = class
FV:TObject;
end;
...
implementation
uses unit1;


procedure TB.lalala;
begin
TA(FV).blablabla;
end;
Подскажите, пожалуйста, как правильно решать такие ситуации.
Ответить с цитированием
  #2  
Старый 09.02.2014, 18:06
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

использовать все в одном модуле чем не устраивает?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 09.02.2014, 18:12
Annihilator Annihilator вне форума
Прохожий
 
Регистрация: 16.06.2013
Сообщения: 29
Версия Delphi: Delphi XE 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
использовать все в одном модуле чем не устраивает?
В модуле много классов. И каждый имеет прямой доступ к приватным полям другого. Чисто технически, конечно, можно(нужно) просто не работать с полями напрямую. Просто хочу как-то структурировать проект и разделить на модули. Привычка после java.
Ответить с цитированием
  #4  
Старый 09.02.2014, 18:38
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

используй абстрактные классы и интерфейсы.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Annihilator (09.02.2014)
  #5  
Старый 09.02.2014, 19:19
Annihilator Annihilator вне форума
Прохожий
 
Регистрация: 16.06.2013
Сообщения: 29
Версия Delphi: Delphi XE 2
Репутация: 10
Хорошо

Цитата:
Сообщение от NumLock
используй абстрактные классы и интерфейсы.
Спасибо, так и поступлю.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:43.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter