Kompozycja

Kompozycja – alternatywa dla klasycznego dziedziczenia. Dzięki takiemu podejściu nasz kod jest bardziej elastyczny. Uzyskujemy ją poprzez definiowanie w nowej klasie pól, które są obiektami istniejących klas. By jeszcze lepiej wykorzystać jej zalety możemy tworzyć klasy na bazie interfejsów. Jeśli we wdrożeniu nie odpowiada nam określona implementacja, to po prostu tworzymy własną, która implementuje metody wcześniej utworzonego interfejsu i jednocześnie wykorzystuje inne, dostępne w naszym projekcie klasy.

Klasa Person
class Person {
private String name;
private String surname;

public Person(String name, String surname) {
this.name = name;
this.surname = surname;
}

public String getName() {
return name;
}

public getSurname() {
return surname;
}
}
Klasa Book wykorzystująca klasę Person jako pole
class Book {
private Person author;
private String title;
double price;

public Book (Person author, String title, double price) {
this.author = author;
this.title = title;
this.price = price:
}

public Person getAuthor() {
return author;
}

public String getTitle() {
return title;
}

public double getPrice() {
return price;
}
}

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *