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

namespace Moody.DevelopmentBasics.Misc
{
    class DependenyInjection
    {
        // Dependency Inversion by Contructors
        abstract class AbstractClient
        {
            private IClientAction clientAction = null;

            public AbstractClient(IClientAction clientAction)
            {
                this.clientAction = clientAction;
            }

            public void Execute()
            {
                this.clientAction.Execute();
            }

        }

        interface IClientAction
        {
            void Execute();
        }

        class ConcreteClient : IClientAction
        {

            public void Execute()
            {
                throw new NotImplementedException();
            }
        }

    }
}
