Het psychologisch probleem doet zich voor in de volgende situatie, maar kan zich gerust op andere plaatsen voordoen daar het een persoonlijke manier van werken is. Ik vroeg mij dan ook af welke manier jullie prefereren. Ik tracht het te illustreren met het volgende voorbeeld:
- BC.Klant.Detail(IProvider provider, int nummer)
- BC.Klant.Lijst(IProvider provider)
- BC.Klant.Opslaan(IProvider provider, DE.Klant klant)
- BC.Afspraak.Detail(IProvider provider, int nummer)
- BC.Afspraak.Lijst(IProvider provider)
- BC.Afspraak.Opslaan(IProvider provider, DE.Afspraak afspraak)
Ik kan van overal in mijn code zaken doen met Klant en Afspraak mits ik een Provider meegeef. Op sommige plaatsen gebeuren er heel wat acties met deze klasses, en is het meegeven van die provider toch een beetje overkill (denk ik).
Oplossing 2: (static properties van non-static-classes)
- DA (DataAccess; namespace)
- DA.XmlProvider : IProvider (class)
- DA.SqlProvider : IProvider (class)
- BC (BusinessComponent; namespace)
- BC.Klant (class)
- BC.Afspraak (class)
- DE (DataEntities; namespace)
- DE.Klant (class)
- DE.Afspraak (class)
- BC.Klant.Detail(IProvider provider, int nummer)
- BC.Klant.Lijst(IProvider provider)
- BC.Klant.Opslaan(IProvider provider, DE.Klant klant)
- BC.Afspraak.Detail(IProvider provider, int nummer)
- BC.Afspraak.Lijst(IProvider provider)
- BC.Afspraak.Opslaan(IProvider provider, DE.Afspraak afspraak)
Ik kan van overal in mijn code zaken doen met Klant en Afspraak mits ik een Provider meegeef. Op sommige plaatsen gebeuren er heel wat acties met deze klasses, en is het meegeven van die provider toch een beetje overkill (denk ik).
Oplossing 2: (static properties van non-static-classes)
- Manager (namespace)
- Manager.BusinessComponent (class)
- Manager.BusinessComponent.Klant (property)
- Manager.BusinessComponent.Afspraak (property)