Sobes.tech
Junior

Программалоодо абстракция деген эмне?

sobes.tech AI

AIден жооп

Абстракция — бул ишке ашыруу деталдарын жашырып, системанын же анын компоненттеринин жалпы көрүнүшүн камсыз кылган механизм. Ал "эмне" кылып жатканын эмес, "кантип" кылып жатканын баса белгилейт.

C#да абстракция төмөнкүдөй ишке ашырылат:

  • Абстракттуу класстар: Алар абстракттуу ыкмаларды (ишке ашырылбаган) жана жөнөкөй мүчөлөрдү камтышы мүмкүн. Абстракттуу класстын экземплярин түзүүгө болбойт.
    // Абстракттуу класс жана абстракттуу ыкма
    public abstract class Shape
    {
        public abstract double GetArea(); // Абстракттуу ыкма
        public string Name { get; set; }
    
        public void DisplayInfo() // Жөнөкөй ыкма
        {
            Console.WriteLine($"Форма: {Name}");
        }
    }
    
  • Интерфейстер: Класс ишке ашырышы керек болгон келишимди аныктайт. Алар гана ыкмалардын, мүнөздөмөлөрдүн, окуялардын жана индексаторлордун жарыяларын камтыйт (C# 8ге чейин), же алдын ала ишке ашыруу болушу мүмкүн (C# 8ден кийин).
    // Интерфейс
    public interface IDrawable
    {
        void Draw(); // Ишке ашырылбаган ыкма
    }
    

Абстракциянын принциптери:

  • Капсулдаштыруу: Маалыматтар жана алар менен иштеген ыкмалар бир блокко топтолушу. Ички түзүлүштү жашырууга көмөк көрсөтөт.
  • Мурас алуу: Бардык касиеттерин жана ыкмаларын мурас катары алууну камсыз кылган, жаңы класстарды түзүүгө мүмкүндүк берет, жана функционалдуулукту кошуу же кайра аныктоо.

Абстракцияны колдонуу:

  • Жыйынтык системдерин жөнөкөйлөтүү.
  • Коддун ийкемдүүлүгүн жогорулатуу.
  • Тууралууну жакшыртуу.
  • Кайталап колдонулуучу компоненттерди түзүү.