С осторожностью, что вы более чем вероятно, следует пересмотреть вашу архитектуру, вы могли бы реализовать свой образец, как это:
Public Class MyCustomClass
Private _shippingList As List(Of String)
Private _productionList As List(Of String)
Public Production As ProductionClass
Public Shipping As ShippingClass
Public Sub New()
Production = New ProductionClass(Me)
Shipping = New ShippingClass(Me)
End Sub
Public Class ShippingClass
Private _owner As MyCustomClass
Public Sub New(owner As MyCustomClass)
_owner = owner
End Sub
Public Function Get_List()
Return _owner._productionList
End Function
End Class
Public Class ProductionClass
Private _owner As MyCustomClass
Public Sub New(owner As MyCustomClass)
_owner = owner
End Sub
Public Function Get_List()
Return _owner._productionList
End Function
End Class
End Class
Однако, если ваше истинное намерение просто организовать методы в более доступной и логически , Я бы предложил рассмотреть вопрос:
Public Class MyCustomClass
Public Sub ShippingListGet()
End Sub
Public Sub ShippingListAddTo()
End Sub
Public Sub ShippingThatDO()
End Sub
Public Sub ShippingThisDo()
End Sub
Public Sub ProductionListGet()
End Sub
Public Sub ProductionListAddTo()
End Sub
Public Sub ProductionThisDo()
End Sub
Public Sub ProductionThatDo()
End Sub
End Class
Имейте в виду, что некоторые считают это трудным для чтения. Я лично предпочитаю организацию по этим направлениям, поэтому, когда методы сортируются в алфавитном порядке, они группируются логически.
Вы можете быть в состоянии сделать это с вложенным классом, если родительский класс имеет (возможно 'Shared') экземпляр этого класса в виде общественный член. Хотя, честно говоря, это не похоже на хорошую идею. Это очень нетрадиционно и неинтуитивно, что делает код, который намного сложнее поддерживать. И если вы пытаетесь найти способ интуитивно группировать методы в своем классе, то это звучит так, как будто класс нуждается в повторном факторизации в возможно несколько классов. – David
Я действительно разъяснил пример, когда вы написали свой комментарий. Цель состоит в том, что существуют разные группы методов, влияющих на подкатегории. Например, «Доставка» имеет множество методов для этой категории. Первоначально я собирался разделить их на разные классы, но были перекрытия и некоторые общие переменные, на которые все они полагаются. Казалось, более интуитивно было сохранить его как одну структуру, поскольку все они связаны с одними и теми же базовыми данными. – ElPresidente
«перекрытия и некоторые общие переменные» звучат как случай для нескольких полиморфных классов, а не один большой класс, который пытается удовлетворить все. Кроме того, структура классов необязательно должна соответствовать структуре базовых данных. Очень часто это так, но они не должны быть тесно связаны друг с другом. Сама природа объектно-ориентированных классов по сравнению с реляционными данными имеет тенденцию отличаться в представлении одних и тех же понятий. Не зная о коде, я могу только рекомендовать читать образцы дизайна и объектно-ориентированный дизайн. – David