Interfacelerde classların aksine birden fazla implementasyon gerçekleştirebiliriz
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InterfacesDemo
{
class Program
{
//SOLID (I) Interface Segregation Principle
static void Main(string[] args)
{
IWorker[] workers = new IWorker[3];
{
new Manager();
new Worker();
new Robot();
};
foreach (var worker in workers)
{
worker.Work();
}
IEat[] eats = new IEat[2]
{
new Worker(),
new Manager()
};
foreach (var eat in eats)
{
eat.Eat();
}
}
}
//Diyelimki şirkette 3 çalışan tipi var işçiler,yöneticiler,robotlar
interface IWorker
{
void Work();
}
interface IEat
{
void Eat();
}
interface ISalary
{
void GetSalary();
}
class Manager : IWorker, IEat, ISalary
{
public void Eat()
{
throw new NotImplementedException();
}
public void GetSalary()
{
throw new NotImplementedException();
}
public void Work()
{
throw new NotImplementedException();
}
}
class Worker : IWorker, IEat, ISalary
{
public void Eat()
{
throw new NotImplementedException();
}
public void GetSalary()
{
throw new NotImplementedException();
}
public void Work()
{
throw new NotImplementedException();
}
}
class Robot : IWorker
{
public void Work()
{
throw new NotImplementedException();
}
}
}

Yorum bırakın