• FMni qachon foydalanamiz
  • Toshkent axborot texnologiyalari universiteti operatsion tizimlar




    Download 37.7 Kb.
    Sana17.08.2023
    Hajmi37.7 Kb.
    #78857
    Bog'liq
    Amaliyish
    1692204058, Operatsion tizimlar yakuniy

    O‘ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR VAZIRLIGI
    MUHAMMAD AL-XORAZMIY NOMIDAGI
    TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI


    Operatsion tizimlar fanidan
    Amaliy Mashg’ulot

    Bajardi: 313-20 guruh talabasi Bekmurodov Ahror


    Tekshirdi: Baydullayev Ruslan
    Toshkent – 2023



    1-amali mashg’ulot: Pattern loyihalashda “Factory Method”


    Creational Patternlar obyekt yoki tegishli obyektlar guruhini yaratishdagi ba'zi bir muammolarni yechishda foydalaniladi. Bu patternlar 5 tani tashkil qiladi:

    1. Factory Method

    2. Abstract Factory

    3. Builder

    4. Prototype

    5. Singleton

    Demak, o'rganishni Factory Method patterni bilan tanishish orqali boshlaymiz.
    Factory Method dizayn patterni obyekt yaratilish jarayonini abstrakt(mavhum)lashtirib, run-time paytida qachonki extiyoj sezilganda obyektni yaratilishiga imkon yaratadi. Dasturchilar ushbu patterni odatda obyekt yaratishning standart usuli sifatida foydalanishadi. Keling berilgan factory method patterniga yanayam sinchikovlik bilan yondashamiz.
    Factory Method = FM
    Biz FMdan foydalangan holda obyektni uning yaratilish logikasini yashirgan holda hosil qilamiz. Ya'ni, obyekt yaratish uchun interfeysdan foydalaniladi, lekin voris class qaysi class obyekti yaratilishini belgilaydi.
    Albatta sizga berilgan ma'lumotlar birdaniga tushunarsiz bo'lishi mumkin, men ham bir o'qishda o'rgana olmaganman. Lekin ko'proq misollar orqali ko'rsangiz buni tushunish osonroq kechadi.
    Quyidagi ko'rsatilgan UML diagramma, FMni qanday tashkil etilishini belgilaydi.

    Yuqoridagi diagramma elementlari nimani anglatadi birma - bir tahlil qilib chiqamiz:
    1.Product - obyektlarni yaratish uchun interfeys.
    2.ConcreteProduct - Product interfeysini implement qiluvchi sinf.
    3.Creator - Product obyektini qaytarib beruvchi FMni aniqlovchi abstrakt sinf.
    4.ConcreteCreator - Creator sinfidan olingan voris sinf.
    Misol:
    Tasavvur qiling 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();
    }
    }
    }
    Natija:

    FMni qachon foydalanamiz?


    Endi asosiy nuqtaga keldik. Ho'sh sizningcha ushbu pattern bizga qanday imkoniyatlar yaratib beradi.
    1.Ba'zi dasturlash tillarida konstruktorlarda istisnolardan foydalanish yomon oqibatlarga olib kelishi mumkin. Bu muammolarni keltirib chiqaradi. FM bo'lsa bunga chek qo'yadi.
    2.Qachonki konstruktorga murojaat qilganingizda, yaratiladigan obyekt turini aniq bilishingiz kerak. Bu har doim ham o'rinlik emas. Tasavvur qiling kompyuterga telfonizni ulamoqchisiz, lekin oldindan u qaysi uslubda kompyuteringizga ulanishini bilmayabsiz(Ethernetmi, COMmi yoki USBmi). Bu holatda FMni qo'llash ancha qulaylik beradi. Ya'ni, siz run-time paytida tanlovga ko'ra qaysi uslub mos kelishini aniqlashingiz mumkin.
    O'ylaymanki aytib o'tilgan fikrlar sizga tushunarlik bo'ldi. Sayohatimizni davom ettiramiz.
    Download 37.7 Kb.




    Download 37.7 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Toshkent axborot texnologiyalari universiteti operatsion tizimlar

    Download 37.7 Kb.