Posts

Posts uit juni, 2014 tonen

Composition over Inheritance

Eerst even back to the basics. Wat wordt bedoeld met overerving en wat wordt bedoeld met composition. Als je het zou moeten beschrijven dan spreek je bij overerving van een 'is-een' relatie en bij composition heb je het over een 'is-een-onderdeel-van' relatie. In code ziet overerving er zo uit: public class Vehicle { } public class Car : Vehicle { } Er is hier duidelijk sprake van de 'is-een' relatie: Een auto is een voertuig. Bij composition ziet de code er als volgt uit: public class Engine { } // Possibility 1: Create the 'composition' inside the constructor public class Car { private readonly Engine _engine; public Car() { _engine = new Engine(); } } // Possibility 2: Inject the 'composition' in the constructor using Dependency Injection (DI). public class Car { private readonly Engine _engine; public Car() { _engine = new Engine(); } } In dit voorbeeld zie je dat een Engine onderdeel is van een auto.