Апстракција (објектно-оријентисано програмирање) — разлика између измена

Садржај обрисан Садржај додат
.
Autobot (разговор | доприноси)
м Разне исправке
Ред 1:
У [[програмирање|програмирању]], '''апстракција''' се огледа у одабиру параметара приликом моделовања предмета или појмова који су битни за даљу обраду.<ref name="КраусЦ++">{{citeCite book|last1=Краус|first1=Ласло|title=Програмски језик С++ са решеним задацима|date=2016|publisher=Академска мисао|location=Београд|isbn=978-86-7466-582-4|pages=}}</ref> Конкретније, у [[Објектно-оријентисано програмирање|објектно-оријентисаном програмирању]] се односи на могућност да се дата [[Класа (програмирање)|класа]] прогласи за [[Апстрактна класа|апстрактну класу]].<ref name="Javajee">{{cite web|title=Summary Of Object-Oriented Programming (OOP) Concepts In Java |url=http://javajee.com/summary-of-object-oriented-programming-oop-concepts-in-java|website=Javajee|accessdate=28. 1. 2018}}</ref>
 
== Објашњење ==
Под апстракцијом се подразмева занемаривање небитних детаља објеката у зависности од потреба.<ref name="КраусЦ++"/> Приликом описивања неког система, апстракција блежи само оне његове особине које могу имати значај за даљи рад, тако да програмер фокусира на мање концепата у току рада.<ref name="Javajee"/><ref name="Erickson">{{cite book|last1=Erickson|first1=Carl|title=Object Oriented Programming |page=17|dateyear=2009|publisher=Atomic Object, LLC|url=https://atomicobject.com/uploads/archive/files/ObjectOrientedProgramming.pdf|accessdate=28. 1. 2018|pages=17}}</ref> Ипак, приликом апстракаховања, апстракција мора бити добро дефинисана тако да остале апстракције могу бити изведене из ње.<ref name="Erickson"/> У објектно-оријентисаном програмирању, апстракције су најчешће репрезентоване управо класама.<ref name="Erickson"/>
 
На пример, за програм који бележи људе учлањене у библиотеке, од свих особина сваког члана, потребни су само лични подаци попут имена, адресе и броја личне карте, док остале особине нису од интереса за рад програма.<ref name="КраусЦ++"/> На основу тога се може формирати и задата класа ''Члан'' која би имала те податке, са неки својим методама попут ''УпишиЧлана'' и слично, у зависности од потреба програма:
Ред 49:
 
== Литература ==
* {{Cite book |ref= harv|last1=Краус|first1=Ласло|title=Програмски језик С++ са решеним задацима|date=2016|publisher=Академска мисао|location=Београд|isbn=978-86-7466-582-4|pages=}}
{{refbegin}}
* {{citeCite book|ref= harv|last1=Краус|first1=Ласло|title=Програмски језик С++ са решеним задацима|date=2016|publisher=Академска мисао|location=Београд|isbn=978-86-7466-582-4}}
* {{citeCite book|ref= harv|last1=Erickson|first1=Carl|title=Object Oriented Programming |page=17|date=2009|publisher=Atomic Object, LLC|url=https://atomicobject.com/uploads/archive/files/ObjectOrientedProgramming.pdf|accessdate=28. 1. 2018|pages=17}}
* {{citeCite book|author1ref=Harold harv|last1=Abelson|first1=Harold|author2=Gerald Jay Sussman|author3last3=Julie Sussman|first3=Julie|title=Structure and Interpretation of Computer Programs|url=http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-10.html|accessdate=22 June 2012|edition=2|date=25 July 1996|publisher=MIT Press|isbn=978-0-262-01153-2}}
* {{cite web|last=Spolsky|first=Joel|title=The Law of Leaky Abstractions|url=http://www.joelonsoftware.com/articles/LeakyAbstractions.html|work=Joel on Software|date=11 November 2002}}
* [http://www.cs.cornell.edu/courses/cs211/2006sp/Lectures/L08-abstraction/08_abstraction.html Abstraction/information hiding] - CS211 course, Cornell University.
* {{citeCite book|authorref= harv|last=Roberts|first=Eric S. Roberts|title=Programming Abstractions in C A Second Course in Computer Science|date=1997}}
* {{cite web|last=Palermo|first=Jeffrey|title=The Onion Architecture|url=http://jeffreypalermo.com/blog/the-onion-architecture-part-1/|work=Jeffrey Palermo|date=29 July 2008}}
{{refend}}