🌱 Digital Garden

Search

Search IconIcon to open search

Implementacion de una Clase

Last updated Aug 6, 2023 Edit Source

# Cohesion

# Cohesion de Metodos

# Principio de Unica Responsabilidad

Una clase cohesiva (como deberia de estar hecha) solo deberia tener un unico motivo de cambio, es decir, solo se deberia ver afectada por una unica cosa (persistencia, vista, comunicacion solo uno pero no todos a la ves).

Pedirle cohesion a una clase.

# Codigo Sucio por Envidia de Caracteristicas

Una clase que envidia a otra clase pidiendole todo el rato sus caracteristicas para hacer los calculos en vez de que la clase que tiene los datos hacerlos.

Es decir, no se respeta el Patron Experto en la Informacion.

# Codigo Sucio por Clase de Datos

El otro lado de la moneda, en este caso la clase que permite que le pidan todo y queno calcula nada es la clase de Datos.

# Codigo Sucio por Cambios Divergentes

Ocurre cuando una clase puede ser afectada por multiples cambios, es decir, si se cambia una tecnologia se cambiara una parte, si se cambia la persistencia otra parte, si se cambia la vista otra parte. Eso esta mal, una clase solo deberia ser afectada por una sola cosa.

La solucion seria dividir esta en diferentes clases.

# Codigo Sucio por Cirugia a Escopetazos

Es el lado contrario al anterior, en vez de que exista una clase que se encargue de una responsabilidad, esta responsabilidad esta distribuida a traves de multiples clases y si es cambiada tiene que cambiar en varios lugares a la ves.

# Codigo Sucio por Grupo de Datos

Hay grupos de datos que son utilizados en muchos lados y que en realidad deberia estar como una clase y no como datos separados.

La solucion es crear una clase que ademas de ser reusable puede asumir responsabilidad y aliviar a otras clases.

# Codigo Sucio Obsesion por Tipos Primitivos

Ocurre cuando en vez de utilizar una clase (donde es necesario porque se requieren operaciones) se utiliza un primitivo con el argumento de que una clase de un atributo no existe.

# Codigo Sucio por Clases Perezosas

Una clase que tiene muy pocos datos y ni siquiera hace operaciones, es perezosa. Puede ser como un holder nada mas de datos que no hace nada.

# Acoplamiento

# Codigo Sucio Inapropiada Intimidad (Evita los ciclos). - No te acoples en ciclos

Una relacion bidireccional complica el codigo y muchas veces crea ciclos muy complejos que hacen al codigo dificil de manejar

# Codigo Sucio por Libreria Incompleta - No te acoples a librerias

Crea una clase para englobar una libreria, no hagas que la libreria interaccione con todos y despues, cuando quieras cambiar la libreria, se tenga que hacer una cirugia a escopetazos.

ENCAPSULA LA LIBRERIA EN UNA SOLA CLASE. PATRON FACHADA.

La libreria da las primitivas (en su interfaz) y es nuestro deber encapsular para reducir el acoplamiento que tenemos a ella.

# TamaƱo

# Codigo Sucio por Listas de Parametros Largas

Es una variacion del smell code de Grupos de Datos, cuando, en vez de utilizar una clase cohesivas que encapsule operaciones y datos se utilizan un grupo de valores primitivos, lo que incrementa mucho la complejidad de los metodos o clases.

En base a las heuristicas lo maximo serian 2 -3 parametros por metodo.

Para tener cero parametros se necesitan de establecer buenas relaciones entre las clases. Muchas veces no hay necesidad de tenerlas

# Codigo Sucio por Metodos Largos

Todos los metodos deben ser pequeƱos 10 a 15 lineas

# Codigo Sucio por Clases Grandes

Siguiendo las metricas tambien deben ser pequeƱas 200 a 500 lineas