Product - obyektlarni yaratish uchun interfeys.
ConcreteProduct - Product interfeysini implement qiluvchi sinf.
Creator - Product obyektini qaytarib beruvchi FMni aniqlovchi abstrakt sinf.
ConcreteCreator - Creator sinfidan olingan voris sinf.
Bizda transport vositalari bor va biz ularning bosib o'tgan masofalarini foydalanuvchiga ko'rsatmoqchimiz. Ho'sh ushbu holatda FMni qanday tashkil etamiz.
using System;
namespace Factory
{
public interface ITransport
{
void Drive(int miles);
}
public class Skuter : ITransport
{
public void Drive(int miles)
{
Console.WriteLine("Skuter yurgan yo'li : " + miles.ToString() + "km");
}
}
public class Mototsikl: ITransport
{
public void Drive(int miles)
{
Console.WriteLine("Mototsikl yurgan yo'li : " + miles.ToString() + "km");
}
}
public abstract class TransportFabrikasi
{
public abstract ITransport TranportOlish(string transport);
}
public class TransportIshlabChiqarish : TransportFabrikasi
{
public override ITransport TranportOlish(string transport)
{
switch (transport)
{
case "Skuter":
return new Skuter();
case "Mototsikl":
return new Mototsikl();
default:
throw new ApplicationException(string.Format("Uzrasiz akasi '{0}' transportini biz ishlab chiqolmimiz", transport));
}
}
}
class Program
{
static void Main(string[] args)
{
TransportFabrikasi fabrika = new TransportIshlabChiqarish();
ITransport skuter = fabrika.TranportOlish("Skuter");
skuter.Drive(10);
ITransport mototsikl = fabrika.TranportOlish("Mototsikl");
mototsikl.Drive(20);
Console.ReadKey();
}
}
}
Design Pattern bu qayta-qayta qo'llash, ma'lum bir kontekstda aniq muammoni hal qilish uchun foydalanish mumkin bo'lgan yechim, yillar davomida dasturchilar tomonidan yig'ilib borgan eng yaxshi tajribalar to'plamidir. Design patternning o'zi muammo hal qilmaydi, aksincha u abstrakt fikr bo'lib class, interface, metodlarning o'zaro bog'lanishlari ko'rinishida beriladi. Misol tariqasida, bino qurilishi davomida quruvchilarning avval poydevor, keyin devor keyin esa tom qurish ketma-ketligini keltirishimiz mumkin. Undan tashqari OOP sifat talablarining mukammal tarzda ishlatilgan holati. Maqolalar seriyasi davomida ushbu prinsiplarning qanday qilib yo'lga qo'yilishi haqida ma'lumot berib borishga xarakat qilamiz. Design Patternlar haqida yozilgan shu kunga qadar eng mashhur kitob bu Design Patterns: Elements of Reusable Object-Oriented Software bo'lib, bu shu darajada mashhurki kitob muallfilariga GOF(Gang of Four)laqabini olib bergan. Ushbu to'rtlik kompyuter olamida eng ko'p eslanadigan insonlardan hisoblanishadi.
Dostları ilə paylaş: |