Wyjaśnienie abstrakcji nie-programiście

Abstrakcja jest pojęciem, które wydaje się trudne do wyjaśnienia, bez powrotu do terminologii programistycznej. Dużo o tym myślałem i nie mogę znaleźć satysfakcjonującej odpowiedzi. Czy ktoś ma jakieś bardzo ogólne, ale bardzo istotne wyjaśnienia?

Metafory, podobieństwa itp. są mile widziane.

Author: Dominic Bou-Samra , 2010-05-27

12 answers

Samochód.

Oddziałujesz z samochodem poprzez abstrakcje-pedał gazu, kierownicę, które służą do ukrycia złożoności pojazdu.

Do sterowania prędkością silnika używasz abstraktu pedału gazu, nie musisz ręcznie wstrzykiwać gazu do silnika i sterować tłokami.

Kierownica to kolejna abstrakcja. Obracasz kierownicę, a ona obraca obie przednie koła jednocześnie, znacznie upraszczając Twoje zadanie jako kierowcy. Możesz zastąp podstawową implementację inną przy zachowaniu interfejsu (np. nowsze samochody mają wspomaganie kierownicy).

Automatyczna skrzynia biegów to kolejny dobry przykład.

 21
Author: Stephen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-27 03:52:08

Abstrakcja

Ignorowanie szczegółów, jak coś działa.

Np. przekręcenie kluczyka w samochodzie uruchamia samochód, to abstrakcja takich detali jak rozrusznik, akumulator, immobiliser, zbiornik benzyny...

 7
Author: mikek3332002,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-27 04:43:13

Większość ludzi spędza cały dzień na wyabstrahowaniu istotnych szczegółów od skomplikowanych rzeczy, więc nie sądzę, że jest to zbyt trudne, aby znaleźć przykład.

Jeśli ci powiedziałem, dam ci 10 sekund na narysowanie czegoś, wtedy kiedy powiem " start! draw a house " raczej nie wymyślisz czegoś innego niż mój rysunek:

 /\
/  \
|  |
 --
Ponieważ twój mózg wyabstrahował najbardziej istotne szczegóły dotyczące Twojego domu: dach, ściany,a gdybyś miał czas, drzwi, okna.

We abstrakcyjny szczegół ze wszystkiego po prostu dlatego, że ułatwia zrozumienie. Nie uczymy się każdego szczegółu w jaki sposób skonstruowane jest krzesło. po prostu idziemy do Ikei i kupujemy takie, które dobrze wygląda. Jest wiele dobrych przykładów.

 5
Author: Nick Klauer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-27 03:50:19

Abstrakcja może oznaczać reguły pisania (lub procedury), które można zastosować do szerszego zbioru okoliczności.

Możesz napisać przepis na pizzę Margherita, która wymaga: pomidorów, sera mozzarella, białej mąki, wody, bazylii, cukru, soli, oliwy z oliwek z pierwszego tłoczenia i drożdży.

Albo możesz zrobić przepis na pizzę, która wymaga ciasta i polewy. To jest abstrakcyjny przepis.

Można wtedy wybrać ciasto z białej mąki, wody, cukru, soli, oliwa z oliwek z pierwszego tłoczenia i drożdże.

Można również wybrać, aby polewa z pomidorów, ser mozzarella, bazylia i oliwa z oliwek extra virgin.

Ale możesz również wybrać Inne dodatki (na przykład pepperoni i chili) i inne rodzaje ciasta (takie jak mąka razowa lub mąka kukurydziana).

 4
Author: wisty,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-27 05:55:33

Telefon to świetny przykład. Kiedy dzwonisz do kogoś, nie musisz znać wszystkich kroków technicznych między naciśnięciem niektórych numerów i "wybierania" i połączeniem z osobą, do której dzwonisz. Wszystko, co wiesz, to to, że po naciśnięciu ich numeru i wybraniu, jesteś podłączony. Szczegóły są abstrakcyjne.

 3
Author: Layla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-23 22:01:21

Jeśli odnosisz się do abstrakcji, tak jak jest ona dostarczana przez biblioteki/frameworki:

Używanie warstwy oprogramowania, która abstrakuje coś, może być postrzegane jako zatrudnienie kogoś, kto pracuje dla Ciebie, czego nie możesz lub nie chcesz robić sam.

Abstrakcja rzeczy do typowych struktur oprogramowania, takich jak klasy i Obiekty, jest nieco trudniejsza do wyjaśnienia ...

 1
Author: selfawaresoup,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-27 03:46:30

Powiedziałbym, że abstrakcja jest uogólnieniem złożonych pojęć na stosunkowo proste, z naciskiem na to, które części pojęcia są ważne w danym kontekście.

 0
Author: WhirlWind,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-27 03:43:21

Sugerowałbym, że abstrakcja polega na zwracaniu uwagi na istotne szczegóły i ignorowaniu reszty.

Powiedz, że chcesz zatrudnić kucharza.

You do want to pay attention to

  • Trening
  • jakie jedzenie może gotować
  • jak dobra jest prezentacja potraw
  • Jak będzie współdziałał z resztą drużyny
  • Jak dobrze jest gotowane jedzenie

Ale ty nie musisz zwracać uwagi do

  • Kolor Włosów
  • Tatuaże
  • Jak dobrze potrafi malować
  • włosy do nosa
  • Kolczyki jego/jej dziewczyny

I tak dalej.

 0
Author: Bevan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-27 03:58:56

Dlaczego po prostu nie zrobić "mieszkania".

Jak w "24a Posh Towers" to "Penthouse dwupoziomowy z czterema sypialniami w docklands" to " apartament w Londynie "to" dom " to mieszkanie.

"niebieski namiot obok etiopskiego namiotu vegatarriańskiego" to "mój namiot w glastonbury "jest" tymczasowym domem", a także "mieszkaniem"

 0
Author: James Anderson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-27 05:55:07

Abstrakcja jest pojęciem lub ideą nie związaną z żadną konkretną instancją

 0
Author: joe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-27 06:39:33

Cyfry.

Co łączy trzy krowy, trzy krzesła i trzy wiśnie? Jaki jest problem z tym, co mają ze sobą wspólnego? Nie można go narysować, a nawet wyjaśnienie pojęcia jest trudne, ale nadal jest to przydatna koncepcja.

Cytat Alicja w Krainie Czarów, Lewis Caroll:

    "[doormice that were drawing everything that begins with an M, 
such as mousetraps, and the moon and memory, and muchness — [..]
 did you ever see such a thing as a drawing of a muchness ?"
 0
Author: Pavel Radzivilovsky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-27 06:54:57

Samochód jest dla mnie za zaawansowany. A może wózek na zakupy? Pchasz, to się rusza.

 -1
Author: fastcodejava,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-27 05:07:53