Ojektorienterade mönster*

Simpla

Passera som argument

Eftersom klasser fungerar som datatyper, kan man skicka med dem som parametervärden. Och eftersom de är referenstyper så behöver man inte returnera dem.

Fighter.cs
public class Fighter
{
  public void Attack(Enemy target)
  {
    target.Hurt(10);
  }
}
Enemy.cs
public class Enemy
{
  private int hp = 100;
  public void Hurt(int amount)
  {
    hp -= amount; 
  }
}

Det här gör att objekten kan påverka varandra direkt, istället för att behöva ha kod som flyttar data mellan dem.

Det här fungerar såklart också med polymorfism (i exempelkoden kan man skicka in även andra sorters enemies), så man kan använda både abstrakta klasser och interfaces.

Lokal referens

Om ett objekt ofta behöver referera till ett annat, och det andra objektet sällan byts ut, så kan man lagra referensen i en klassvariabel.

Factory pattern

Observer pattern

Singleton pattern

Component pattern

Last updated