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

Когда я должен передать переменную в качестве параметра метода

METHOD do_this.
  do_that( input ).
ENDMETHOD.

METHOD do_that.
  WRITE input.
ENDMETHOD.

и когда я должен хранить его в атрибуте экземпляра?

METHOD do_this.
  me->input = input.
  do_that( ).
ENDMETHOD.

METHOD do_that.
  WRITE me->input.
ENDMETHOD.

Есть ли объективные преимущества и недостатки? Существуют ли типичные варианты использования или примеры для обоих случаев? Существуют ли надежные рекомендации от объектно-ориентированного моделирования? Должен ли я уделять особое внимание специфике языка программирования ABAP?

Всего 1 ответ


Я не уверен, есть ли общие рекомендации. Для меня это все об удобстве.

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

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

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


Есть идеи?

10000