Duplicate logic in multiple locations
Repeated "if-then" logic or multiple [[switch case]]s scattered though-out the [[code base]].
Bad:
public enum Shape
{
Circle,
Rectangle,
Square,
Hexagon
}
public class Visualizer
{
public void Draw(Shape shape)
{
switch(shape)
{
case Shape.Circle:
break;
case Shape.Hexagon:
break;
case Shape.Rectangle:
break;
case Shape.Square:
break;
}
}
public decimal CalculateArea(Shape shape)
{
... switch case
}
}
Good:
abstract class Shape
{
abstract void Draw();
abstract decimal CalculateArea();
}
public class Rectangle : Shape
{
public override void Draw()
{
}
public override decimal CalculateArea()
{
}
}
public class Circle : Shape
{
public override void Draw()
{
}
public override decimal CalculateArea()
{
}
}