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) |
| Мушкилот | Қатъӣ | Гибки |
| Истифодаи такрорӣ | Тартибҳои синфӣ | Тартибҳои объектӣ |
| Тағйироти рафтор | Азнавсозии методҳо | Иваз кардани объектҳои дарунсохт |
| Барнома | Мутахассисӣ, васеъ кардани функсионал |
- | Агрегатсия, сохтани аз қисмҳо |
Таркиб дар аксар ҳолатҳо нисбат ба мерос беҳтар аст, зеро он бештар флексибиллик ва камтар вобастагиро байни синфҳо таъмин мекунад.