Када поједете бурито, сваки ваш рецептор за укус пева од радости. Сваки залогај доноси комбинацију различитих типова укуса, попут сланог, слатког, зачињеног и умами. Сваки залогај након тога има мало другачији укус јер нова колекција састојака спаја своје укусе.

Можда сте прочитали састојке са менија, али не знате тачно како се салса прави. Зачини које користе за своје поврће могу бити тајна мешавина. Међутим, не морате знати сваки тачан састојак. Довољно је знати да је укусно.

Састојци које познајете, попут обичног белог пиринча, су конкретни. Остали елементи су апстрактни. Знате да је салса, али каква? Или, ако вам неко само ниоткуда преда бурито, онда је цео бурито апстрактан.

Апстракција у апстракту

Заједно са наследством, апстракција је важан концепт у објектно оријентисаном програмирању. Теорија је да сваки објекат треба да пружи једноставне и предвидљиве резултате. Објекти такође треба да деле само оно што треба да се дели.

Буррито можете замислити као предмет. Унутар буррита имате неколико других предмета, као што су пасуљ, пиринач, сир и љути сос. Пасуљ је можда био зачињен. Сир може бити мешавина. А љути сос може бити комбинација паприка одлежаних у сирћету.

instagram viewer

Не морате да знате како су направљени сви састојци за буррито. А у случају хот-догова, вероватно не желите да знате. Важно је само да се не распадне када га поједете и да је супер укусно.

Апстракција је уско повезана са инкапсулацијом

Иста је ствар са програмским објектима. Када инстанцирате објекат (направите га из класе), то је као да наручите бурито на шалтеру камиона са храном. Имате приступ неким подацима, али не свим. Не морате да знате како објекат функционише, све док функције враћају тачне податке. Ево бурито у ЈаваСцрипт/Типесцрипт-у:

Наведени језик: тск не постоји'
Генерисање кода није успело!!
'

Можете играјте се са овим кодом у ТипеСцрипт сандбок-у.

У горњем примеру, састојци салсе и сира су апстраховани. Прво, они су инкапсулирани, да би се сакрили посебни састојци. Затим се додају геттери да би се приступило састојцима. Али састојци само дају апстрактни приказ онога што они заиста јесу.

Апстракција у бетону

Међутим, апстракција је више од концепта. Часови могу бити и апстрактни. То значи да могу да дефинишу друге класе. Али они се не могу сами инстанцирати.

Зашто часови понекад треба да буду апстрактни

Замислите да одете у ресторан и седнете. Конобар вам даје мени. Отворите га и откријете да постоји само једна ставка: храна.

То је прилично апстрактно. Да ли бисте то наручили? Да ли би јео? Вероватно не би. Рећи да је нешто храна није довољно. Треба да се разбије на нешто конкретније.

Шта је са тестенином? Па, то је специфичнија врста хране. А знамо да вероватно има резанце и сос. Али постоји много различитих врста тестенина, тако да је и даље апстрактно.

Шта је апстрактно, а шта конкретно?

Феттуццине Алфредо је конкретан пример хране и тестенина. Иста ствар важи и за часове. Не треба сваку класу инстанцирати. Неке класе треба да дефинишу само структуру других класа.

Ево примера са апстрактом Храна разред, и дете Макадамски орашчић класа:

Наведени језик: тск не постоји'
Генерисање кода није успело!!
'

Ево кода.

Апстрактне класе говоре другим класама како треба да се понашају. У горњем примеру, ако ћете бити класа хране, морате имати функције које омогућавају приступ вашем имену, укусу, опису и калоријама.

Приметите да је Макадамски орашчић класа протежеХрана. То значи то Макадамски орашчић пристаје да поштује правила Храна. Такође, приметите да конструктор позива супер. Та команда инстанцира родитељску класу пре него што конструктор инстанцира Макадамски орашчић.

Ако учите да програмирате, можете забавите се са овим програмским играма.

Пракса апстракције

  • Посетите горњу везу и користите сандбок за креирање апстрактне класе под називом Супа.
  • Створите конкретно дете Супа разред, зв Житарице.
  • Користите цонсоле.лог да тестирате свој код. Шта се дешава ако ваш Житарице класи недостаје једна од функција дефинисаних у Супа?

Али која је поента класе коју не можете инстанцирати?

У почетку, апстрактни часови могу изгледати непотребни. На крају крајева, не можете их користити за прављење објекта. И није да они преносе своје функције. Функције се морају преписати у сваком дечјем разреду.

Постоје два главна разлога зашто су вам потребне апстрактне класе. Они одржавају ваш код конзистентним и старају се да и други програмери пишу конзистентан код. Нећете увек радити сами. Цео тим треба да поштује иста правила. Можете научити више од ТипеСцрипт документацију о апстрактним класама.

Како да организујете свој објектно оријентисани код са наслеђивањем

Реад Нект

ОбјавиТвеетОбјавиЕмаил

Повезане теме

  • Програмирање
  • Програмирање
  • Објектно оријентисано програмирање

О аутору

Лее Натхан (Објављено 19 чланака)

Ли је номад са пуним радним временом и полиматичар са много страсти и интересовања. Неке од тих страсти се врте око продуктивности, личног развоја и писања.

Више од Лее Натхана

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили