sammensætning er meget bedre end arv

, denne artikel forklarer faldgruberne i arv, og tilbyder en løsning. i denne artikel, jeg skal bruge nogle ficticious klasse navne osv. på grund af følsomheden af det projekt, jeg arbejder på, så bær over med mig, hvis nogle af de oplysninger, det virker lidt mærkeligt. efter selv om 6 niveauer arbejder inde i arv det pludselig op for mig, at min fabrik klasse havde en dateofbirth.det var bestemt ikke, men med min nuværende model, jeg kunne ikke gøre noget ved det.var mine muligheder for at slippe af med den arv til fabrik og miste alle fordelene ved at gøre det (under " additionalinformation " defineres af brugeren, f.eks.), eller at ignorere dateofbirth og ikke vise det i gui. begge disse muligheder var sludder.i stedet for at tage en af dem, jeg gik i en helt anden mulighed i stedet.jeg besluttede at fjerne næsten alle arv inden for min model, og tilføje sammensatte forhold i stedet for. nu, i stedet for min fabrik klasse faldende indirekte fra en objectwithadditionalinformation har ingen forfader klasse på alle.for at opnå den samme funktion, nu har jeg et enkelt forhold fra fabrik til nu er omdøbt til additionalinformationholder klasse.denne kategori gælder de supplerende oplysninger, brugeren ønsker at komme ind, og fabrikken skaber et eksempel på det, når det først er skabt.,,, jeg så skabt en ramme /usercontrol, der vil holde gui for optagelse af yderligere oplysninger, herunder sin egen expressionhandle., det smukke ved denne metode er, at jeg nu kan have. enhver type formål inden for min model i stand til at få yderligere oplysninger, der registreres i mod det, hvis jeg vil.for at gennemføre de gui jeg ganske enkelt dropper den ramme /usercontrol i form af den pågældende genstand og de grundlæggende led i expressionhandle. og pludselig har jeg en model med næsten ingen arv i den.jeg kan lave ændringer i klasser, uden at kontrollere, at det ikke vil bryde den efterkommer klasser (eller deres former), og jeg har ikke mistet nogen funktioner på alle. jeg anbefaler, at du bruger arv kun for polymorfisme fordele, ikke kun af hensyn til at arve ejendomme.brug den kun, når det er en elegant løsning på et problem, (som den, der er beskrevet i artikel sammensætning og rekursive køreledning) snarere end som en måde, hvorpå man kan undgå at have adgang til de samme egenskaber og adfærd på en ny klasse.kan du huske, bare fordi en bygning og en person har et navn, en dato for udformning og placering, ikke giver dem den samme ting.,



Previous:
Next Page: