Está en la página 1de 1

Las jerarquas paralelas de herencia Jerarquas paralelas de herencia es realmente un caso especial de ciruga escopeta.

En este caso, cada vez que realice una subclase de una clase, tambin hay que hacer una subclase de otra. Usted puede reconocer el olor porque los prefijos de los nombres de clase en una jerarqua son los mismos que los prefijos de otra jerarqua. La estrategia general para eliminar la duplicacin es asegurarse de que los casos de una jerarqua referencia a instancias de la otra. Si utiliza el Move Method y el Move Field, la jerarqua de la clase de referencia desaparece. Generalidad especulativa Brian Foote sugiri este nombre para un olor a lo que son muy sensibles. Te das cuenta cuando la gente dice, "Oh, creo que tenemos la capacidad de este tipo de cosas algn da", por lo que todos los tipos de anzuelos y casos especiales para manejar las cosas que no son necesarias. El resultado a menudo es ms difcil de entender y mantener. Si toda esta maquinaria se estaban utilizando, podra valer la pena. Pero si no es as, no lo es. La maquinaria slo se interpone en el camino, por lo que deshacerse de l. Si tiene clases abstractas que no estn haciendo mucho, use Collapse Hierarchy. Delegacin innecesaria se puede quitar con la clase en Inline Class. Mtodos con parmetros no utilizados deben ser objeto de Remove Parameter. Mtodos con nombre con extraos nombres abstractos deben ser llevados a la tierra con el Rename Method. Generalidad especulativa se pueden observar cuando los nicos usuarios de un mtodo o clase son casos de prueba. Si usted encuentra un mtodo o clase, brrelo y el caso de la prueba de que la ejerce. Si usted tiene un mtodo o una clase que es una ayuda para un caso de prueba que ejerce funciones legtimas, hay que dejarlo en, por supuesto. Biblioteca de clases incompleta La reutilizacin a menudo se promociona como el propsito de los objetos. Creemos que la reutilizacin est sobrevalorado (que slo uso). Sin embargo, no podemos negar que gran parte de nuestra habilidad de programacin se basa en clases de la biblioteca para que nadie pueda decir si nos hemos olvidado de nuestros algoritmos de ordenacin. Los constructores de clases de la biblioteca rara vez son omniscientes. No los culpo por eso, despus de todo, rara vez puedo entender un diseo hasta que hayamos construido en su mayora, por lo que los constructores de la biblioteca tienen un trabajo muy duro. El problema es que a menudo es de mala educacin, y por lo general imposible, para modificar una biblioteca de clases para hacer algo que te gusta hacer. Esto significa que las tcticas probadas y verdaderas como Move Method mentira intil. Tenemos un par de herramientas de propsito especial para este trabajo. Si slo hay un par de mtodos que desea la biblioteca de clases haba, utilice Introduce Foreign Method. Si hay un montn de comportamiento extra, usted necesita Introduce Local Extension.

También podría gustarte