La composició de la rescat de l'herència

Pots creure-me en la paraula, que sempre acaba posant-se

El concepte d'herència és un concepte que s'ha de màster quan un utilitza una llengua objecteSi vols organitzar el teu codi al voltant dels objectes, hi ha una gran possibilitat que vostè es trobarà amb la necessitat d'utilitzar l'herència. Tot i que el llegat porta una gran quantitat d'avantatges, aquesta no és la resposta a tots els problemes. Si es cau en l'ús indiscriminat de l'herència, hi ha una alta probabilitat que vostè mordiez dits uns mesos més tard, quan vostè necessitat d'evolucionar de l'àmbit funcional de l'aplicació. Per descomptat, és la temptació de dir,"Si jo hereta de Foo, llavors hauré de totes les seves funcions sense cap esforç.".

Avui, anem a parlar d'arquitectura de software

Però al mateix temps, que s'uneixen fortament a tant de les classes, i si vénen a divergir en el futur, vostè no serà capaç d'que vostè acaba de dir"d'Acord, han de compartir el mateix quan algunes característiques".

A continuació, podràs començar a adonar-se que ara és difícil d'avaluar cada una d'aquestes classes, i que està lluny de ser obvi per a la divisió.

Comencen els problemes. La preocupació per a desenvolupadors no experimentat és que no s'adonen d'aquest fet que, enmig d'un projecte o quan el client vol fer un canvi en el funcionament d'un altre element. És necessari ser capaç de detectar els diferents tipus de relacions que poden existir entre les classes. Una classe pot estar vinculada a un de l'altre per tres tipus de relacions: La composició sempre serà més flexible que un mixins i no estar directament relacionat amb la classe que l'acull, en contrast amb l'herència. Per tant, és ara els vehicles tenen una velocitat, el cotxe pot rodar i els helicòpters poden volar. Ara diguem que es vol crear una classe per a avions tècnicament pot rodar i volar. El nostre avió està a mig camí entre el cotxe i l'helicòpter. Per descomptat, podríem utilitzar mixins, però això és ni més ni menys, que una forma de múltiples herència. Seria molt millor que la solució actual i hauria de resoldre el nostre problema. L'altra solució seria utilitzar la composició, el qual us permet aïllar els comportaments en aules especialitzades. Anem a utilitzar les instàncies d'aquestes classes en altres classes.

És per això, que permet a les classes neta, concisa, sense mètodes que es superflu, i molt fàcilment comprovables.

Utilització de la composició, que és tenir accés a tota la potència d'un dedicat la classe a manipular un objecte. Per tant, podem posar en el seu lloc: accepto que aquesta solució és més verbal que mixins però també és molt més potent i flexible, i en la pràctica probablement més fàcil de provar.

Durant la manifestació, vaig inicialitzar els objectes de Rodes i Ales de la mosca, però a la pràctica es tendeix a fer aquest treball d'inicialització la inicialització mètode que permeti tenir objectes persistents i per evitar problemes de competència.

En la pràctica, no hi ha raó per seguir un mètode precís, per què utilitzar la composició, mixins, o herència de manera excloent quan es poden barrejar els tres. Ell ha de saber adaptar-se i utilitzar la solució que sigui més flexible. Per tant, l'ús de l'herència quan és necessari, recorda,"un promotor és una persona". Es procedirà a la mixins quan un està en la situació,"un desenvolupador és actuar com un empleat". Probablement serà a la composició si aquesta relació resulta ser una cosa d'un complex, un objecte que requereixen una dedicada classe. Per resumir el contingut d'aquest article, crec que de les classes per tal que siguin el més modular possible, no enganxar-se en una caixa de la qual no pot, finalment, sortir, recorda clarament delinear les responsabilitats de cada un. Si el proves són difícils d'implementar, és sovint el signe d'una arquitectònic qüestió que hauria de posar una puça a l'orella. en una aplicació de Visualització. js. Sisi, és possible No quedar-se sol.