2013-08-01 6 views
15

Czytałem ten cytat w książce:Co oznacza "poziom pośredni" w aforyzmie Davida Wheelera?

Nie ma problemu w informatyce, których nie można rozwiązać przy użyciu innej poziom pośredni.

Czy ktoś może to wyjaśnić? Co oznacza "poziom pośredni"?

Z tego, co rozumiem, indirection jest fantazyjną nazwą użycia wskaźnika wartości zamiast samej wartości. Proszę to wyjaśnić.

+6

Zapomniałeś reszty cytatu "... z wyjątkiem zbyt wielu poziomów indirekcji" –

+0

Myślę, że ma to związek z abstrahowaniem warstw danych w obiekty i radzeniem sobie z problemem na różnych poziomach abstrakcji (w różnych obiektach, być może w paradygmacie OOP.) – Houdini

+0

możliwy duplikat [Poziom Indirection rozwiązuje każdy problem] (http://stackoverflow.com/questions/288623/level-of-indirection-solves-every-problem). Zobacz także [Jaka jest różnica między warstwą abstrakcji a poziomem dwukierunkowości?] (Http://programmers.stackexchange.com/q/111756) i [pozostałą część strony internetowej] (http: // www.google.com/search?q=there+jest+nieproblemem+na+niepewnym+przeprowadzeniem+z+poziomem+poziomu+wysokim+indeksie). –

Odpowiedz

20

"Indirection" używa czegoś, co wykorzystuje coś innego w jego najszerszym znaczeniu.

Twój przykład, używając wskaźnika wartości zamiast wartości, pasuje do tej definicji na jednym poziomie. Wskaźnik jest czymś, a wartość jest czymś innym.

Zazwyczaj jest to coś większego w zakresie:

  • Korzystanie z witryny internetowej, aby graficznie wyświetlać dane generowane przez usługi oparte na XML. Tutaj strona internetowa jest czymś i kryje się za nią dane, które są czymś innym.
  • Korzystanie z systemu operacyjnego w celu uzyskania dostępu do ekranu wyświetlacza. Oto dwie warstwy, przynajmniej o kierunku pośrednim. System operacyjny używa sterownika ekranowego. Jedno coś używające czegoś innego. Następnie sterownik ekranu mówi bezpośrednio do sprzętu ekranowego, powodując, że maleńkie punkty świetlne pojawiają się tu i tam. Sterownik jest następnym, czymś, co używa czegoś innego, co jest sprzętem.
  • Często zdarza się, że jeden interfejs API radzi sobie z czymś na wysokim poziomie, a interfejs API zajmuje się tym samym na niższym poziomie. Znowu poziom pośredni jest dodawany do API niskiego poziomu i nazywamy go nowym, ulepszonym API.

Ten ostatni przykład, być może, wyjaśnia "dlaczego" to wszystko.

Pracując z czymś, opanowujemy to i uczymy się jak go abstrakcjonować na wyższy poziom abstrakcji, dlatego potrzebny jest nowy poziom pośrednictwa i możemy szybciej rozwiązać większe problemy, odciążając część pracy do nowego API .

+0

Hej, to co powiedziałem! lol, jk, dobra odpowiedź :) – Houdini

+0

dobra odpowiedź! dzięki –

+0

Oczywiście, jedynym problemem, który nie może być rozwiązany przez dodanie kolejnej warstwy pośredniej, jest zbyt wiele warstw pośrednich. –

3

Jedną z potencjalnych dużych zalet pośrednich jest zmniejszenie sprzężenia. Jest to inny sposób powiedzenia, że ​​rzeczy powinny być odpowiednio uszeregowane. Często pomaga to w znacznym stopniu w testowaniu, konserwacji i elastyczności w długim okresie.

Przykładowo, jeśli aplikacja wymaga odczytywania niektórych danych, zamiast dokładnego poznania miejsca (i sposobu) odczytania rozproszonego w całej aplikacji, należy ją odizolować (umieścić odczyt danych w metoda), a następnie niech wszystkie inne części aplikacji wywołają tę metodę, aby pobrać dane, a nie każdą część aplikacji, która musi sama zajmować się tymi szczegółami.