Skip to content

Instantly share code, notes, and snippets.

@ceskmcfran
Created July 31, 2018 13:23
Show Gist options
  • Save ceskmcfran/c6d1705a4ee61a76723d19e490a71fa1 to your computer and use it in GitHub Desktop.
Save ceskmcfran/c6d1705a4ee61a76723d19e490a71fa1 to your computer and use it in GitHub Desktop.
Wrong use of Open/Closed principle
public enum BossType
{
Good,
Bad
}
public class Boss
{
public string Name { get; set; }
public double Money { get; set; }
public BossType Type { get; set; }
}
public class Service
{
public List<Boss> Bosses { get; set; }
public void addMoney()
{
foreach (var boss in Bosses)
{
double newMoney = 0;
switch (boss.Type)
{
case BossType.Good:
newMoney = boss.Money + 100;
break;
case BossType.Bad:
newMoney = boss.Money - 100;
break;
}
boss.Money = newMoney;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment