Қазақстан Республикасы білім және ғылым министрлігі Л.Н.Гумилев атындағы Еуразия Ұлттық Университеті Ақпараттық технологиялар факультеті
Реферат Тақырыбы: «Класстар композициясы»
Орындаған:
Группа:
Тексерген: Сагиндыков Каким Молдабекович Нұр-Сұлтан 2020 Бұл жұмыста біз Java-да композицияның мысалдарын көреміз, ол бағдарламалаудың өте маңызды аспектісі.
Ассоциация - бұл олардың объектілері арқылы құрылған екі бөлек кластардың арасындағы қатынас. Ассоциация біреуге, біреуге, көпке, көпке көп болуы мүмкін («один к одному», «один ко многим», «многие к одному», «многие ко многим»). Объектіге бағытталған бағдарламалау кезінде объект басқа объектілермен осы объект ұсынатын функциялар мен қызметтерді пайдалану үшін өзара әрекеттеседі.
Егер бар бағдарламалық кодты қайта пайдалану қажет болса, онда класстар осы кодты өзгертпейтін етіп құрылуы керек. Нысанға бағытталған бағдарламалау тілдерінде (Java, C++, C) бағдарламалық кодты қайта қолданатын классты құрудың үш әдісі бар:
Композиция. Бұл жағдайда класста бағдарламалық кодты пайдалану керек басқа класстың объектісі болады. Бұл тәсіл дайын кодтың функционалдығын қолданады;
Мұрагерлік (inheritance). Класс басқа кодты мұра етеді және оның қасиеттерін өзгертеді немесе мұрагерлік кодқа өзіндік мүмкіндіктер қосады;
Делегирлеу. Бұл композиция мен мұрагерлік арасындағы аралық нәрсе.
Композиция - бұл екі объект бір-біріне өте тәуелді болатын шектеулі ассоциация түрі.
Ол қарым-қатынастың бір бөлігі.
Құрамы жағынан екі нысан да бір-біріне тәуелді.
Екі объектінің арасында композиция болған кезде, құрама объект басқа объектісіз өмір сүре алмайды.
Java композициясына мысалдар Адамда тапсырма бар, мұны Java композициясының мысалымен қарастырайық.
Job класы package ua.com.prologistic.composition;
public class Job {
private String role;
private long salary;
private int id;
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public long getSalary() {
return salary;
}
public void setSalary(long salary) {
this.salary = salary;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
Person класы package ua.com.prologistic.composition;
public class Person {
private Job job;
public Person(){
this.job=new Job();
job.setSalary(1000L);
}
public long getSalary() {
return job.getSalary();
}
}
Міне, адамға объектіні қолданатын және оның жалақысын алатын java композициясының мысалы үшін тест классы.
TestPerson класы public class TestPerson {
public static void main(String[] args) {
Person person = new Person();
long salary = person.getSalary();
}
}
Java композициясының артықшылықтары
Егер сіз кодты қайта қолдануды іздесеңіз және екі класс арасындағы қатынас has-a болса, онда сіз мұрагерлік емес, композицияны қолдануыңыз керек.
Java-да композицияны қолданудың артықшылығы - біз басқа объектілердің клиент сыныптарына көрінуін басқара аламыз және тек өзімізге қажет нәрсені қайта қолдана аламыз.
Сондай-ақ, егер басқа кластың орындалуында, мысалы, getSalary-ді қайтару сияқты өзгерістер болса, біз Person класын оны орналастыру үшін ауыстыруымыз керек, бірақ клиент класстарын өзгерудің қажеті жоқ.
Композиция қажет болған жағдайда ішкі классты құруға мүмкіндік береді, мысалы, біз Job getSalary әдісін жұмыс объектісін инициализациялау үшін өзгерте аламыз, егер қажет болса.
Композицияны жүзеге асыратын классты өзгерту мұрагерлікке қарағанда оңай.
Композиция жұмыс уақытында орындалады, яғни, динамикалық байланыстыру кезінде мұрагерлік компиляция кезінде жасалады, яғни, статикалық байланыстыру.
Егер сіз кодты қайта қолданғыңыз келсе және ешқандай байланыс болмаса, композицияны қолданыңыз. Кодты қайта пайдалану үшін мұрагерлікті пайдаланудың қажеті жоқ.
Қорытындылай келе, композиция бізге көп реттік классты клиенттерден қорғауға мүмкіндік береді, ал басқа әдістер ондай мүмкіндік бере алмайды.