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

namespace DekoratorPredykatu
{
    public class KomponentWarunkowy : IKomponent
    {
        public KomponentWarunkowy(IKomponent prawdziwyKomponent, IKomponent fałszywyKomponent, IPredykat predykat)
        {
            this.prawdziwyKomponent = prawdziwyKomponent;
            this.fałszywyKomponent = fałszywyKomponent;
            this.predykat = predykat;
        }
        
        public void JakaśMetoda()
        {
            if (predykat.Test())
            {
                prawdziwyKomponent.JakaśMetoda();
            }
            else 
            {
                fałszywyKomponent.JakaśMetoda();
            }
        }

        private readonly IKomponent prawdziwyKomponent;
        private readonly IKomponent fałszywyKomponent;
        private readonly IPredykat predykat;
    }
}
