Там какие-либо “глюки” должны наблюдать за в использовании Класса (объект) в себе?

У меня есть класс Реестра и существует несколько значений Реестра, к которым я хочу получить доступ из того класса Реестра. (Существует определенное вычисление с этими значениями, таким образом, я думал, что только что исправил весь этот код в самом Классе Реестра).

Таким образом, у нас могло бы быть что-то в нашем RegistryRoutine.cls как:

Function GetMyValue() as integer
    Dim R as new RegistryRoutine

<calculations>
GetMyValue=R.GetRegisetryValue (HKEY, key, value, etc.)

End Function
1
задан JYelton 4 June 2010 в 18:12
поделиться

2 ответа

Нет, в целом вы не увидите никаких проблем (например, перезаписываемых переменных-членов или чего-нибудь странного как это).

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

Обратите внимание на рекурсивные случаи - например, GetMyValue () не должен вызывать R.GetMyValue (), а GetRegistryValue () не должен вызывать GetMyValue ().

Однако вы на самом деле этого не хотите.

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

Так почему бы просто не вызвать GetRegistryValue ( без , R. )?

1
ответ дан 3 September 2019 в 00:03
поделиться

Довольно часто классы работают с экземплярами самих себя. Рассмотрим, например, как работает древовидная структура. Либо класс Node должен следить за своими дочерними элементами, либо за своим родителем (или за обоими). Все узлы относятся к одному классу.

1
ответ дан 3 September 2019 в 00:03
поделиться