Абстрактная фабрика и дженерики
От: Kaifa Россия  
Дата: 20.08.19 09:15
Оценка:
Вот рассмотрим простейшую учебную:
есть бренды электроники.
для каждого бренда несколько девайсов (мобильник, планшет)
для простоты ограничим функционал включением.


static void Main(string[] args)
        {
            foreach (IDeviceFactory factory in GetDeviceFactories())
            {
                Client client = new Client(factory);
                WorkWithDevices(client);
            }
        }

        static IDeviceFactory[] GetDeviceFactories()
        {
            return new IDeviceFactory[] {
                new AppleDevicesFactory(),
                new SamsungDevicesFactory(),
                new XiaomiDevicesFactory()
            };
        }


class Client
    {
        private const int CableLength = 10;

        public ICellPhone CellPhone;
        public ICharger Charger;
        public ILaptop Laptop;
        public ITablet Tablet;

        public Client(IDeviceFactory factory)
        {
            CellPhone = factory.CreateCellPhone();
            Charger = factory.CreateCharger(CableLength);
            Laptop = factory.CreateLaptop();
            Tablet = factory.CreateTablet();
        }
    }

   public class AppleDevicesFactory : IDeviceFactory
    {
        public ICellPhone CreateCellPhone()
        {
            return new CellPhoneApple();
        }

        public ICharger CreateCharger(int cableLength)
        {
            return new ChargerApple(cableLength);
        }

        public ILaptop CreateLaptop()
        {
            return new LaptopApple();
        }

        public ITablet CreateTablet()
        {
            return new TabletApple();
        }
    }



Собственно куда здесь, на каком уровне и самое главное преследуя какую цель можно вкорячить дженерики и какие от этого будут преимущества?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.