Composición para o rescate da herdanza

Podes crer-me sobre a palabra, que sempre remata por chegar

O concepto de herdanza é un concepto que se debe dominar cando se utiliza unha lingua obxectoSe queres organizar o seu código torno a obxectos, hai unha forte posibilidade de que vai ser confrontados coa necesidade de uso de herdanza. Aínda que o legado trae unha morea de vantaxes innegábeis, esta non é a resposta a todos os problemas. Se caer no uso indiscriminado de herdanza, hai unha gran oportunidade de que vostede mordiez dedos uns meses máis tarde, cando ten que evolucionar funcional ámbito da súa aplicación. Por suposto, é tentador dicir,"Se eu herda de Foo, entón eu vou ter todas as súas características, sen ningún esforzo.". Pero, ao mesmo tempo, vai se unen fortemente a ambas as clases e, se eles veñen a diverxer no futuro non vai ser capaz de que vostede acaba de dicir"Ok, eles comparten o mesmo cando algunhas características".

Entón vai comezar a entender que agora é difícil para probar cada unha destas clases, e que está lonxe de ser evidente para a división.

Os problemas comezan. A preocupación para os desenvolvedores non experimentado é que un non entende esta feito de que no medio dun proxecto ou cando o cliente quere facer un cambio para a operación de un xa existente elemento. É necesario ser capaz de detectar os diferentes tipos de relacións que poden existir entre as clases. Unha clase pode ser conectado a un do outro por tres tipos de relacións: A composición sempre vai ser máis flexible que un mixins e non vai ser directamente relacionado coa clase que os anfitrións en contraste coa herdanza.

Hoxe, imos falar sobre o software de arquitectura

Polo tanto, era agora os vehículos teñen unha velocidade, o coche pode rolar e os helicópteros poden voar.

Agora imos dicir que un quere crear unha clase para os avións tecnicamente, pode rolar e voar. O noso plan é a medio camiño entre o coche e o helicóptero.

Por suposto, non podería usar mixins, pero isto non é nin máis nin menos que unha forma de herdanza múltiple. Sería moito mellor que o noso actual solución e ía resolver o noso problema. Outra solución sería a de utilizar a composición, o que permite illar comportamentos especializados en clases. Imos a continuación, usar casos de estas clases noutras clases. É, polo tanto, permite ter clases limpa, concisa, sen métodos que son superfluas, e moi facilmente testável.

Usar a composición, é para ter acceso a todo o poder de un grupo de clase para manipular un obxecto.

Así, podemos poñelas en lugar: eu asegura a vostede que esta solución é máis detallado que mixins pero tamén é moito máis flexible e potente, e vai na práctica, probablemente, máis fácil de proba. Para a demostración, eu comprobador de obxectos Rodas e Ás de mosca, pero, na práctica, que tende a facer este traballo de inicialización no arrincar método que permitiría ter persistente obxectos e para evitar problemas de competencia. Na práctica, non hai razón para seguir un método preciso, por que usar a composición, mixins, ou herdanza en exclusiva forma cando se pode mesturar os tres. Debe saber adaptarse e utilizar a solución que vai ser máis flexible. Imos, polo tanto, utilizar a herdanza cando é necesario, lembra,"un creador é unha persoa". Imos proceder á mixins cando se está en situación,"un creador está actuando como un empregado". El probablemente vai ser para a composición se esta relación resulta algo complexa, un obxecto esixindo un grupo de clase. Para resumir o contido deste artigo, creo que das súas clases, de xeito que eles son os máis modular como sexa posible, non se ater-se unha caixa de que non pode finalmente ir para fóra, lembre-se de delinear claramente as responsabilidades de cada un. Se as probas son difíciles de aplicar, moitas veces, é o sinal de unha arquitectura cuestión que ten que poñer unha pulga na orella. en unha aplicación de Vista. js. Sisi, é posible Non estar só.