Как организовать набор похожих функций в двух параллельных цепочечных классах - PullRequest
0 голосов
/ 25 сентября 2019

Я хотел бы получить этот набор свойств с 1 классом + 2 цепочечными классами:

mytable.EntireRange
mytable.DataBodyRange
mytable.HorizontalHeaderRange
mytable.VerticalHeaderRange

mytable.col(strTitle).num
mytable.col(strTitle).firstDataCell
mytable.col(strTitle).lastDataCell

mytable.row(strTitle).num
mytable.row(strTitle).firstDataCell
mytable.row(strTitle).lastDataCell

Как лучше всего организовать (и назвать) эти классы и свойства?


Мое текущее решение для добавления связанных свойств:
- я назвал три класса "mytable", "mytable_col", "mytable_row", чтобы сохранить видимую связь в Project Explorer
- внутри "mytable"Я добавил это:

Property Get col(strTitle As String) As mytable_col
    Set col = New mytable_col
    col.Initialize = Me ' passes the parent object
 End Property
Property Get row(strTitle As String) As mytable_row
    Set row = New mytable_row
    row.Initialize = Me ' passes the parent object
 End Property

Теперь ... учитывая, что три свойства (" num "," firstDataCell "," lastDataCell ") двух параллельных связанных классов" col "и" row "разделяя ту же логику с небольшими вариациями, я бы предпочел не помещать их полный код в 6 свойств, три в классе "row" и три в "col".

В идеале я хотел бы создать только 3 свойства /функции (передавая "row" или "col" в качестве аргумента для вариантов) вместо шести.
Как мне поступить?Возможно ли без них поместить их в дополнительный модуль?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...