Jag sitter och programmerar webbkomponenter, och jag undrar lite över vad skillnaden mellan en vanlig klass och en "partial class" är.
Partial class?
37 svar · 1 662 visningar · startad av nitro2k01
En partial class är egentligen en klass delad över flera källkodsfiler.
Enda fördelen, som jag ser det, är att man om man är flera som arbetar i samma projekt, kan man jobba simultant flera utvecklare med samma klass.
mvh
Enda fördelen, som jag ser det, är att man om man är flera som arbetar i samma projekt, kan man jobba simultant flera utvecklare med samma klass.
Det är en fördel, men den riktigt stora fördelen ligger i klasser som genereras utifrån verktyg. Ta en webservices proxy class, denna genereras varje gång du gör en update på din webservice och eventuella tilllägg som du gjort i klassen försvinner.
Om du istället lägger dina tilläge i en annan fil, som partial klass så kommer dessa tillägg finnas kvar även om du gör en update på din webservice.
Det är där som den stora styrkan med partial klasser ligger, eller kanske möjligheten att dela upp en klass i flera filer om klassen skulle bli extremt stor, men då kanske man skall se över sin klassstruktur istället...
- M
Eller om du t ex har ett antal modellklasser som ex User, Booking etc. Ganska smidigt att kunna deklarera dessa som underklasser till Model (Model.User). Ganska osmidigt att ha alla dessa modellklasser i en och samma fil när man kommer upp i antalen.
Josef skrev:
Eller om du t ex har ett antal modellklasser som ex User, Booking etc. Ganska smidigt att kunna deklarera dessa som underklasser till Model (Model.User). Ganska osmidigt att ha alla dessa modellklasser i en och samma fil när man kommer upp i antalen.
Förklara gärna mer. Jag har svårt att se finessen.
emission skrev:
Förklara gärna mer. Jag har svårt att se finessen.
Finessen med vilket? Modelklasserna eller att ha dessa i olika filer?
Josef skrev:
Finessen med vilket? Modelklasserna eller att ha dessa i olika filer?
Om emission undrar över samma sak som jag, så är det vad partial classes har att göra med att man har olika klasser i olika filer. Det var iaf så jag förstod ditt inlägg.
Klassen Model måste ju deklareras som Partial eftersom du antagligen får en fil per subklass (User, Post etc).
Men det är ju ingen mening med att ha den Partial om man inte "fortsätter" på Model-klassen i en annan fil. User och Post är ju subklasser och tjänar inte på att Model är Partial.
emission skrev:
Men det är ju ingen mening med att ha den Partial om man inte "fortsätter" på Model-klassen i en annan fil. User och Post är ju subklasser och tjänar inte på att Model är Partial.
Om User och Post är privataklasser till Model, så måste de ligga in i Model klassen och därmed så tjänar man ju på att Model är partial eftersom du då kan dela upp klassen i fler filer.
Jag har dock svårt att se behovet av så många privataklasser till en annan klass, då bör man nog se över sin objektmodell och se om man inte tänkt fel någonstans...
- M
Gladh skrev:
Om User och Post är privataklasser till Model, så måste de ligga in i Model klassen och därmed så tjänar man ju på att Model är partial eftersom du då kan dela upp klassen i fler filer.
OK, då är jag med på "modellen".
Gladh skrev:
Jag har dock svårt att se behovet av så många privataklasser till en annan klass, då bör man nog se över sin objektmodell och se om man inte tänkt fel någonstans...
Instämmer å det gladhaste!
Då kanske vi menar lite olika vad gäller modellklasser.
Det gör vi säkert...
Vad är en modellklass för er?
Vet inte har aldrig använt en "modell"-klass någongång :).
Jag misstänker att du programmerar i VB.NET och att man i VB 6 hade något som hette model-klasser, och det är något som du fört med dig från VB6, stämmer det?
- M
Har inte använt VB6 speciellt mycket. Med modellklass menar jag en uppsättning propertys som stämmer överrens med en tabellrad i datakällan. Så att då t ex Booking har BookingNo, CustomerId, Weight etc. (vilket du redan har förstått ;) ).
Josef skrev:
Med modellklass menar jag en uppsättning propertys som stämmer överrens med en tabellrad i datakällan. Så att då t ex Booking har BookingNo, CustomerId, Weight etc. (vilket du redan har förstått ;) ).
Menar du att alla objekt som motsvarar något i domänen ska vara inre klasser till samma klass, eller har jag missförstått dig? Vad vinner man på det? Det räcker väl att de ligger i samma namespace, om man vill att de ska ha åtkomst till varandra på ett lite intimare sätt.
Skulle man kunna göra, men vad vinner man på det jämfört med att ha det i en partiell klass?
josef, som jag tolkar det vill du ha hög cohesion då antar jag. Nu kan det vara så att jag inte förstått hur du menar.
erka skrev:
josef, som jag tolkar det vill du ha hög cohesion då antar jag.
Efter en stunds googlande efter vad cohesion betyder i programmeringssamanhang förstår jag det fortfarande inte. Lust att förklara lite närmare? ;)