На самом деле ничего сложного в ООП нет, главное не увлекаться и использовать его там, где это действительно облегчает программирование. У меня есть много советников, в том числе и в Столе Заказов, написанных с использованием классов. В большинстве из них, в принципе, можно было бы обойтись и стандартными методами. Однако там, где есть кнопки и другие элементы интерфейса, использование объектов всё-таки предпочтительнее, так как код получается нагляднее.
Например, обработка состояния нажатия кнопки. Есть, наверное, разница в коде без ООП:
- Код: выделить все
if (ObjectGet(InpNameSELL,OBJPROP_STATE)==1)
{
...
}
И с применением объектно-ориентированного программирования:
- Код: выделить все
if (btSell.IsPressed())
{
...
}
Или перевести кнопку в состояние "отжата". Без ООП:
- Код: выделить все
ObjectSetInteger(0,InpNameSELL,OBJPROP_STATE,false);
ChartRedraw();
И с ООП:
- Код: выделить все
btSell.UnPress();
Как видно, в данном случае код с ООП намного понятней для прочтения, в процессе программирования получается меньше ошибок, многие вещи делаются быстрее. Сложность заключается в том, что требуется больше времени на начальном этапе, чтобы описать все методы класса, но зато потом потраченное время с лихвой окупается.