using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace DekoratorProfilujący
{
    public class ProfilowanyKomponent : IKomponent
    {
        public ProfilowanyKomponent(IKomponent udekorowanyKomponent)
        {
            this.udekorowanyKomponent = udekorowanyKomponent;
            stoper = new Stopwatch();
        }

        public void JakaśMetoda()
        {
            stoper.Start();
            udekorowanyKomponent.JakaśMetoda();
            stoper.Stop();
            Console.WriteLine("Metoda wykonywała się przez {0} sekund", stoper.ElapsedMilliseconds / 1000);
        }

        private readonly IKomponent udekorowanyKomponent;
        private readonly Stopwatch stoper;
    }
}
