Клас (програмиране): Разлика между версии

Изтрито е съдържание Добавено е съдържание
Gkusev (беседа | приноси)
Gkusev (беседа | приноси)
Ред 52:
 
== Ползи ==
Компютърните програми обикновено представят модел на реалния свят или някакъв абстрактен свят (например ''домейн''). Понеже всеки клас моделира отделна концепция, употребата на класове позволява по естествен начин да се моделира заобикалящият ни свят. Всеки клас в модела може да се разглежда като съществително, методите на този клас - като глаголи, които се отнасят до тези съществителни. Например една бизнес система може да се моделира с помощта на класове като „Клиент“, „Продукт“, „Служител“, „Фактура“, „Работа“ и т.н. Класът „Фактура“ може да има методи като „Създай“, „Отпечатай“ или „Изпрати“. Класът „Работа“ може да се „извърши“ (метод) или „отмени“ (друг метод). Ако програмата може да моделира и опише реалността акуратно, то тя може да предостави на потребителите ценна информация за тази система и нейните обекти. Класовете позволяват ясни връзки между модела и реалността, което прави лесно създаването, поддържането, промяната и разбирането на модела. Класовете също така позволяват повече контрол върху сложността на подобни модели (опростяване, прегледност).
 
Класовете ускоряват разработката на програми, като намаляват повторението на идентичен код, улесняват тестовете и отстраняването на грешки. Ако един клас е щателно тестван и е доказано чист от грешки (бъгове), то употребата му ще подобри качеството на крайния код за разлика от употребата на прясно написан код или код сглобен по copy/paste модела. Освен това ефективното преизползване на класове означава, че ако е допусната грешка, то ще трябва да се редактира само един клас, а не няколко различни сегмента от кода.
 
В допълнение класовете може да се асоциират или наследяват взаимно, което опростява модела на взаимосвързаност. Така по-лесно може да се проследи йерархията на обектите, връзките между тях и модела им на взаимодействие. Също така се намалява нужния код – ако например два класа споделят еднакви атрибути, но единия има допълнителни атрибути (описва частен случай), то може единия клас да се дефинира като подклас на другия и съвместните им атрибути да се запишат само веднъж. Като цяло добре изградена рамка от класове улеснява навигацията, разбирането и работата с компютърни програми.
 
== Представяне при изпълнение ==