intel silver reef, celly 2.0 Ghz, 256mb ddr, G2MX
Verwijderd
Nee.
VB ondersteunt alleen encapsulation (aggregation in COM termen): dit omdat een 'class' in VB eigenlijk als een COM object wordt gezien. Je moet dus een class A maken met bepaalde functionaliteit en die als private membervar opnemen in een andere class B, die meer functionaliteit dan A in zich heeft en voor de functionaliteit van A ook A raadpleegt. B moet je alle methods van A geven en die dus doorlussen met de methods van A (dus roepen een method in A aan).
VB ondersteunt alleen encapsulation (aggregation in COM termen): dit omdat een 'class' in VB eigenlijk als een COM object wordt gezien. Je moet dus een class A maken met bepaalde functionaliteit en die als private membervar opnemen in een andere class B, die meer functionaliteit dan A in zich heeft en voor de functionaliteit van A ook A raadpleegt. B moet je alle methods van A geven en die dus doorlussen met de methods van A (dus roepen een method in A aan).
Damn...
thx
thx
intel silver reef, celly 2.0 Ghz, 256mb ddr, G2MX
Je kunt in VB ook Interfaces gebruiken, maar echt handig zijn ze niet.
Wat je kunt doen is een class I<iets> maken, zonder code, maar met lege Subs en Functions erin en dan in een andere class zeggen: Implements I<iets>.
Dan moet de andere class alle subs en functions van I<iets> implementeren. Het is geen code inheritance, of zelfs maar wat-dan-ook inheritance, maar het kan wel handig zijn.
Wat je kunt doen is een class I<iets> maken, zonder code, maar met lege Subs en Functions erin en dan in een andere class zeggen: Implements I<iets>.
Dan moet de andere class alle subs en functions van I<iets> implementeren. Het is geen code inheritance, of zelfs maar wat-dan-ook inheritance, maar het kan wel handig zijn.
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
Waar het om gaat is een app waar ik modules voor wil maken....
In java zou ik dan gewoon een class myAppModule maken en dan alle modules afleiden van die class zodat ik alle standaard functioes niet weer hoef te maken... wat zou dan de beste manier zijn om hetzelfde een beetje netjes in vb te maken?
In java zou ik dan gewoon een class myAppModule maken en dan alle modules afleiden van die class zodat ik alle standaard functioes niet weer hoef te maken... wat zou dan de beste manier zijn om hetzelfde een beetje netjes in vb te maken?
intel silver reef, celly 2.0 Ghz, 256mb ddr, G2MX
Dan zul je moeten delegeren. Met interfaces of wat voor VB taalconstructie dan ook gaat dat niet lukken, want code-inheritance bestaat niet in <VB6. Als je dat wilt doen, moet je VB.NET gaan gebruiken. Dat ondersteund WEL code-inheritance.
(Of heet dat nou implementation-inheritance?)
Als je VB6 wilt gebruiken zou ik Interfaces EN delegeren gebruiken. Je maakt 1 class (CAppModule) die alle standaard functies bevat en een interface (IAppModule) voor die class (je kunt dezlefde file gebruiken, al vind ik dat niet zo mooi). Dan kun je in je prog dit soort dingen doen, omdat ze allemaal dezelfde interface hebben:
Zonder interface kan het ook, maar dan heb je late-binding (kan ook handig zijn, maar in dit geval niet denk ik).
(Of heet dat nou implementation-inheritance?)
Als je VB6 wilt gebruiken zou ik Interfaces EN delegeren gebruiken. Je maakt 1 class (CAppModule) die alle standaard functies bevat en een interface (IAppModule) voor die class (je kunt dezlefde file gebruiken, al vind ik dat niet zo mooi). Dan kun je in je prog dit soort dingen doen, omdat ze allemaal dezelfde interface hebben:
code:
1
2
3
4
5
6
7
8
| Dim s As String
Dim m As IAppModule
For Each m in AppModules
s = s & " " & m.GetModuleName()
Next m
MsgBox "Geladen modules:" & s |
Zonder interface kan het ook, maar dan heb je late-binding (kan ook handig zijn, maar in dit geval niet denk ik).
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
Pagina: 1