Sobes.tech
Junior

Объектке багытталган программалоодо мурас жана түзүмдүн айырмачылыктары эмнеде?

sobes.tech AI

AIден жооп

Мурас мурас:

  • "бар" мамилеси" (is-a).
  • Мурас мурас классынан мурас алат жана ата-энесинин талаалары менен ыкмаларын мурас алат.
  • Бар болгон класстарды атайын версияларын түзүү үчүн колдонулат.
  • Катуу жана иерархияга жана көп мурас алууга байланыштуу көйгөйлөргө алып келиши мүмкүн.

Композиця:

  • "бар" мамилеси (has-a).
  • Класс башка класстарды өз талаалары катары камтыйт.
  • Иштерди аткарууну берилген объекттерге өткөрүп берет.
  • Ишти ийкемдүү кылып, компоненттерди алмаштыруу мүмкүнчүлүгүн камсыз кылат.

Javaда мисал:

// Мурас мурас
class Vehicle { // Негизги класс
    void start() { /* ... */ }
}

class Car extends Vehicle { // Vehicleтен мурас алат
    // Car өзгөчө ыкмалары
}

// Композиця
class Engine { // Композит компонент
    void start() { /* ... */ }
}

class AnotherCar { // Композицияны колдонгон класс
    private Engine engine; // Engine экземплярын камтыйт

    AnotherCar(Engine engine) {
        this.engine = engine;
    }

    void start() {
        engine.start(); // Делегирлөө
    }
}

Айырмачылыктар таблица түрүндө көрсөтүлүшү мүмкүн:

Критерий Мурас мурас Композиция
Мамиле "бар" мамилеси (is-a) "бар" мамилеси (has-a)
Катуулуулук Азыкча катуу Ийкемдүү
Кайталоо колдонуу Иерархия аркылуу Объекттердин экземплярдары аркылуу
Аралашуу Ыкмаларды кайра аныктоо Камтылган объекттерди алмаштыруу
Колдонуу Мамилдөө, функционалдуулук кеңейтүү Бөлүктөрдөн куруу, агрегаттоо

Композиця көбүрөөк ийкемдүүлүк жана класс арасындагы көзкаранды болбоо үчүн көбүрөөк артыкчылыкка ээ, мурас алууга караганда.