Denis Jakus

Demystifying Tech & Management

CTO x Unique People

IT Consultant

Denis Jakus

Demystifying Tech & Management

CTO x Unique People

IT Consultant

CTO Note

Composition1 min read

21 November 2017 .NET
Composition1 min read

What is Composition?

It’s a relationship between two classes that allows one to contain the other. When one class is subset of the other, “has-a” relationship.

I.E. Person has Leg

What are benefits of using composition?

  • code re-use
  • way of achieving loose coupling
  • flexibility

Code

public class Hand {
private readonly Logger _logger;
public Hand(Logger _logger){
_logger = Logger;
}
public void Grab(){
_logger.Log("Grabbing something")
}
}
public class Leg {
private readonly Logger _logger;
public Leg(Logger _logger){
_logger = Logger;
}
public void Walk(){
_logger.Log("Walking");
}
}
public class Logger {
public void Log(string message){
Console.WriteLine(message);
}
}
public class Program {
static void Main(string args[]) {
var leg = new Leg(new Logger());
leg.Walk(); //outputs "Walking" to logger class
var hand = new Hand(new Logger());
hand.Grab(); // outputs "Grabbing something" to logger class
}
}

SUMMARY

As you can see, we got code reuse with Logger class to two other classes using composition. This way code becomes more flexible with higher degree of code reusing and achieving loose coupling.

Taggs:
Related Posts
How to organize Visual Studio projects

Facebook Twitter Evernote Hacker News Gmail Print Friendly Yahoo Mail reddit LinkedIn Blogger Tumblr Like In my latest Youtube video,…

Caching in DotNet Core WebAPI using Strategy Pattern

Facebook Twitter Evernote Hacker News Gmail Print Friendly Yahoo Mail reddit LinkedIn Blogger Tumblr Like Let me write today about…

Write a comment