GeeksforGeeks

Wielu z nas nie będzie świadomych tej różnicy, która jest naprawdę ważna do zrozumienia podczas rozwoju. Możliwa odpowiedź na to pytanie, jeśli zostanie zadane, będzie brzmiała „Framework to zbiór różnych bibliotek”. Jednak ta definicja nie jest do końca prawdziwa. „Kto kogo wywołuje”, czyli relacja caller/callee definiuje różnicę pomiędzy tymi dwoma pojęciami. To nasz kod wywołuje kod biblioteki, podczas gdy w frameworku to kod frameworka wywołuje nasz kod. Zobaczmy jak to zrobić.

Biblioteka

Biblioteka dostarcza zestaw funkcji/obiektów/modułów pomocniczych, które kod aplikacji wywołuje w celu uzyskania określonej funkcjonalności. Biblioteki zazwyczaj skupiają się na wąskim zakresie (np. łańcuchy, IO, gniazda), więc ich API są mniejsze i wymagają mniejszej ilości zależności. Jest to po prostu zbiór definicji klas. Dlaczego ich potrzebujemy? Powód jest bardzo prosty, tzn. ponowne wykorzystanie kodu, użycie kodu, który został już napisany przez innych programistów. Przykład, pewna biblioteka posiada metodę o nazwie findLastIndex(char) do znalezienia ostatniego indeksu danego znaku w łańcuchu znaków. Możemy od razu wywołać funkcję findLastIndex(charToFind) tej biblioteki i przekazać znaki, których pozycję musimy znaleźć jako parametr w wywołaniu funkcji.

Framework

Framework, z drugiej strony, ma zdefiniowane otwarte lub niezaimplementowane funkcje lub obiekty, które użytkownik pisze, aby stworzyć własną aplikację. (Użytkownicy C++/Java zrozumieją to, ponieważ jest to podobne do implementacji abstrakcyjnej funkcji). Ponieważ framework jest sam w sobie aplikacją, ma szerszy zakres i zawiera prawie wszystko, co jest potrzebne do stworzenia aplikacji użytkownika zgodnie z jego własnymi potrzebami. Wikipedia wyjaśnia to jeszcze bardziej:

„W programowaniu komputerowym, framework oprogramowania jest abstrakcją, w której oprogramowanie zapewniające ogólną funkcjonalność może być selektywnie zmieniane przez dodatkowy kod napisany przez użytkownika, dostarczając w ten sposób oprogramowanie specyficzne dla aplikacji”

framework vs library

Tak więc, kluczowa różnica jest w „Inversion of Control”, potocznie zwanym IoC. Kiedy wywołujemy metodę z biblioteki, mamy nad nią kontrolę. Ale w frameworku, kontrola jest odwrócona, tzn. framework wywołuje nas. Definiuje on szkielet, gdzie aplikacja definiuje swoje własne cechy, aby wypełnić ten szkielet. Przykład, w Javascript, zwykle używamy tego:

$(document.ready(){ // this call will be done by the jquery // framework when document will be ready. function() { /* your code */ // our implementation inside the framework's function }});

W bibliotece zazwyczaj mamy jej obiekt do wywoływania jej funkcji lub po prostu je wywołujemy. Ex:

str = "Geeks.ForGeeks"var pos = str.lastIndexOf("."); // simply calling function of string library

Important Points:

  • Biblioteka : Wykonuje zestaw określonych i dobrze zdefiniowanych operacji. Przykłady : Protokoły sieciowe, kompresja, manipulacja obrazami, narzędzia do obsługi ciągów znaków, ocena wyrażeń regularnych, matematyka itp
  • Framework: Wiadomo, że jest to szkielet, w którym aplikacja definiuje zawartość operacji poprzez wypełnienie szkieletu. Przykłady frameworków: System aplikacji internetowych, Menedżer wtyczek, System GUI. Szkielet definiuje tylko koncepcję, ale aplikacja dalej definiuje funkcjonalność, która jest użyteczna dla użytkowników końcowych.
  • Inversion of control: Kiedy wywołujemy metodę z biblioteki, mamy nad nią kontrolę. Ale w frameworku, kontrola jest odwrócona, tzn. framework wywołuje nas.

Odniesienie:

  • Video Tutorial

Ten artykuł został napisany przez Ekta Goel. Jeśli podoba Ci się GeeksforGeeks i chciałbyś się do niego przyczynić, możesz również napisać artykuł używając contribute.geeksforgeeks.org lub wysłać go pocztą na adres [email protected]. Zobacz, jak twój artykuł pojawia się na stronie głównej GeeksforGeeks i pomóż innym Geekom.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *