Interface რაში არის საჭირო.

 

თავიდან ყველას ეგ შეკითხვა უჩნდება მაგრამ ამას უნდა პრაკტიკა და გამოცდილება რომ გაიგო. მაგრამ მე მაინც შევეცდები აგიხსნათ:

დაუშვათ რომ გვაქვს ესეთი ინტერფეისი ჩვენ რომელიც აღწერს მონსტრს.

interface IMonster
{
int Damage { get; set; }
void Move();
}

ეხლა ჩვენ გავაკეთოთ მონსტრების კლასი (დრაკონები, მინოტავრები, გიდრები და ა.შ) რომლებიც ახდენენ ამ ინტერფეისეს რეალიზაციას (ანუ ამ ინტერფეისეს ტიპები იჩითებიან) , ანუ ყველა ამ ჩვენს მიერ შექმნილ მონსტრების კლას რომლებიც ახდენენ ამ ინტერფეისეს  რეალიზაციას ყველა მათგანს ექნება დემიჯი ანუ დარტყმის ძალა  და პახოდუ მეთოდი move (ანუ სვლა) რომელიც აღწერს ესა თუ ის მონსტრი როგორ აკეთებს სვლას (დარბის,ცურავს თუ დაფრინავს)

 

ეხლა ქვემოთ მოყვანილ მაგალითში შევქმენით 3 მონსტრი (თითეული მონსტრი არის მონსტრის ინტერფეისის ბაზაზე) შემდეგ ამისა უკვე ხელის მარტივი მოძრაობით სხვადასხვა ტიპის მონსტრს ვაკეთებინებთ სვლას.

IMonster[] monsters = new IMonster[3];
monsters[0] = new DragonMonster();
monsters[1] = new LilitMonster();
monsters[2] = new LionMonster();

for (int i = 0; i < monsters.Length; i++)
monsters.Move();

ანუ ინტერფეისი გრუბად რომ გითხრა გამაერთიანებელი ტიპია რაღაც ნიშნის მიხედვით აერთიანებს სხვადასხვა ტიპის “როჟებს”.

ამას პრაკტიკა უნდა რომ უფრო კარგად გაიგო და ჩაწვდე აზრს არის ამოცანები რომლებშიც გჭირდება რა სხვანაირად ვერ გააკეთებ, 

ეხლა წარმოიდგინე ინტერფეისეს გარეშე რომ შეგვექმნა თითეული მონსტრი, თითეულისთვის სვლის გასაკეთებლად ცალკე მითითება დაგვჭირდებოდა და ვერც ერთ მასივში ჩავყრიდით. ანუ ხელის მარტივი მოძრაობით გავაერთიანეთ საერთო ნიშნით მონსტრები, ჩავყარეთ ერთ მასივში და ყველას გავაკეთებინეთ სვლა მარტივად.

სხვა შემთხვევაში თითეულისთვის ცალკ ცალკე უნდა გვეწერა მოქმედება.

Facebook (0)