Clase : Tenant
Code Smell: Switch Statement
• Problema presente
Elimina dependencia en los casos. Si se agrega otro tipo de Tenant se debería agregar mas casos al switch statement.
Implementacion expuesta al cliente.
• Beneficios de Refactorizar
Cumple el principio Solid Open/Closed Principle.
Mejora la adherencia al Single Responsability Principle y hace el programa mas legible.
Esto puede ayudar a enmascarar el propósito/implementación de métodos
Sección B
Clase Tenant
Sección C
Técnica de Refactorización: Replace Type Code with Strategy
Como vemos un code smell en el switch entonces vemos que se repiten los tipos de TenantType para realizar una misma actividad categorizada por su tipo por lo que mejor creamos cada tipo de Tenant para agragar modularizacion al código y en el método que tiene el code smell encapsulara su implementación al cliente.
Clase Abstracta TenantType
Clases que heredan de TenantType e implementan el método calculateDepositAfterRenting(int deposit)
Clase : Tenant Code Smell: Switch Statement • Problema presente
Sección C Técnica de Refactorización: Replace Type Code with Strategy Como vemos un code smell en el switch entonces vemos que se repiten los tipos de TenantType para realizar una misma actividad categorizada por su tipo por lo que mejor creamos cada tipo de Tenant para agragar modularizacion al código y en el método que tiene el code smell encapsulara su implementación al cliente.
Clase Abstracta TenantType
Clases que heredan de TenantType e implementan el método calculateDepositAfterRenting(int deposit)