Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В этом то и смысл, что изолировав все от всего, разобраться с таким кодом будет во много раз сложнее, не говоря же о невозможности адекватной отладки кода когда нужно знать текущие значения всех необходимых переменных...
Если вы пишете класс, который пользуется интерфейсом торгового процессора - вам не следует знать текущие переменные внутри полученного интерфейса. Отлаживайте ТЕКУЩУЮ часть.
Если надо отлаживать сам торговый процессор - опять же, надо отлаживать именно его, и внутри этого класса - вам не следует знать никакие переменные, скажем, из генератора сигнала входа.
В том и заключается суть инкапсуляции - в каждом конкретном месте мы работаем только с тем, с чем надо, и не лезем в другие места.
Не идет речь о низком уровне, а о логике того что там куда перетекает и во что превращается в каждый возможный момент времени, включая знание всех внутренних переменных... Без понимания всей этой избыточной логики смысл использования данного кода для не автора пропадает начисто...
Здрааасте...
Вы раве много понимаете в работе Метатрейдера ? Вы разве знаете хоть одну из переменных МТ ? Но это - вам не мешает его использовать.
Так и следует делать внутри своей программы. Есть ряд блоков - они взаимодействуют с помощью заранее определенных интерфейсов, и друг внутрь друга не лезут.
Если вы пишете класс, который пользуется интерфейсом торгового процессора - вам не следует знать текущие переменные внутри полученного интерфейса. Отлаживайте ТЕКУЩУЮ часть.
Если надо отлаживать сам торговый процессор - опять же, надо отлаживать именно его, и внутри этого класса - вам не следует знать никакие переменные, скажем, из генератора сигнала входа.
В том и заключается суть инкапсуляции - в каждом конкретном месте мы работаем только с тем, с чем надо, и не лезем в другие места.
Здрааасте...
Вы раве много понимаете в работе Метатрейдера ? Вы разве знаете хоть одну из переменных МТ ? Но это - вам не мешает его использовать.
Так и следует делать внутри своей программы. Есть ряд блоков - они взаимодействуют с помощью заранее определенных интерфейсов, и друг внутрь друга не лезут.
Будьте внимательней, не идет речь о внутренних переменных МТ, а о внутренних переменных объекта, которые вы изолировали, предотвратив возможность считывания их значений во время отладки и написания кода...
Если внутренние переменные объекта нужны где-то еще, то это уже не внутренние переменные объекта, нужно задуматься о логике построения этого объекта (скорее всего, еще раз поделить его на более мелкие объекты). В крайнем случае, если это действительно необходимо и других путей нет, в интерфейсе делается Get-метод с public доступом.
Если вы хоть раз писали хоть один мало мальски сложный вычислительный алгоритм, то наверно могли бы заметить, что всегда есть множество переменных, которые нужны обрабатывать несколько раз в разных местах и иметь возможность контролировать их значения в разных частях программы в любой момент времени... Как к этой ситуации вы сможете присобачить инкапсуляцию всего внутреннего содержания объекта от внешнего мира непонятно....
подобное как раз говорит о том что это вы, к сожалению, практически ничего не писали :-(
такой кавардак в системе !
Если внутренние переменные объекта нужны где-то еще, то это уже не внутренние переменные объекта. В крайнем случае, если это действительно необходимо и других путей нет, в интерфейсе делается Get-метод с public доступом.
Да уж.. хрен редьки не слаще :) Идея в адекватном языке программирования, чтобы облегчить отладку и написание кода с минимумом телодвижений, а тут имеем полностью противоположную ситуацию...
подобное как раз говорит о том что это вы, к сожалению, практически ничего не писали :-(
такой кавардак в системе !
Если вы хоть раз писали хоть один мало мальски сложный вычислительный алгоритм, то наверно могли бы заметить, что всегда есть множество переменных, которые нужны обрабатывать несколько раз в разных местах и иметь возможность контролировать их значения в разных частях программы в любой момент времени... Как к этой ситуации вы сможете присобачить инкапсуляцию всего внутреннего содержания объекта от внешнего мира непонятно....
Здрасте.
Если в одном блоке требуются данные из другого блока - объявляется соответствующий виртуальный интерфейс, предоставляющий такую возможность. Вот же, выше, функциональность торгового процессора - требуется в разных частях программы, в генераторе входов, контроллере трейлинга и выхода, в контроллере стоп-торгов. Каждый из этих блоков программы - может обратиться к объекту эксперта, и получить интерфейс торгового процессора. При этом - никто прямого доступа к этому процессору не имеет - исключительно через заранее определенный интерфейс.
Точно так же и в других местах - если какие-то данные требуются - значит, этот блок должен предоставить соответствующий интерфейс.
Суть в том, чтобы любая точка программы имела доступ исключительно только к необходимым ей переменным, и не имела доступ ни к каким переменным больше.