Enkapsulacja to pakowanie danych i funkcji w jeden komponent. Enkapsulacja, polimorfizm, dziedziczenie: cechy

Pod koniec lat 80. ubiegłego stulecia nic zasadniczo się nie zmieniło w programowaniu. Było wiele języków, wiele kontrowersji i był Turbo Pascal 5.5, aw dostarczaniu pakietu było kilka dziwnych plików i kilka niekonwencjonalnych struktur w składni.

Prawdopodobnie programowanie obiektowe jest spowodowane pojawieniem się nieznanego artysty, a być może kilkoma, ale szczególnie wielkiej wartości, idea łączenia kodu i danych w tych odległych czasach nie miała miejsca. Termin "hermetyzacja" został powiązany słabo i pośrednio.

Struktury, funkcje i procedury

Już w pierwszych wersjach języków programowania, zanim pojawiły się pierwsze bazy danych, było absolutnie jasne, że nie jest to liczba, a nie ciąg symboli, ale coś znaczącego. Niech to będzie zmienny "licznik" w pętli lub trzy liniowe zmienne "nazwisko", "imię", "patronim", ale zawsze ma to sens.

"Licznik" zawsze znajduje się po cyklu i pracuje w nim. I "nazwisko", "nazwisko", "patronymiczny" zostanie ogłoszony razem, a ich udział w wielu częściach kodu zostanie udostępniony. Tam, gdzie będą one używane niezależnie, będą miały jeden sens. Funkcje i procedury pierwotnie pojawiły się jako częste kawałki kodu. Ich wykorzystanie było początkowo przewidziane w innych miejscach programu. Ich pojawienie się w programie warunkowało powtarzanie bloków tych samych działań. Usunięcie powtórzenia w postaci funkcji lub procedury upraszcza miejsce powtarzania, zmniejsza ilość kodu i upraszczadebugowanie
Nie było to programowanie obiektowe, ale klasyczny styl kodowania od samego początku jego ewolucji obejmował generalizację danych, tworzenie struktur i obszarów funkcjonalnych kodu.

Powody rozpoczęcia enkapsulacji

Enkapsulacja w programowaniu rozpoczęła się na długo przed OOP. To było w głębi stylu klasycznego, nie brało pod uwagę programowania funkcjonalnego, strukturalnego i wszystkiego, co szukało drogi do przyszłości. Każdy kompilator i tłumacz języka pilnie przyjmował wszystko, co nowe w swojej składni, oferując programistom opcje implementacji semantyki. Informacje nigdy nie były statyczne, tylko programowanie jest nadal satysfakcjonujące dzięki sformalizowanej wersji. Ale nawet jeśli jest to ściśle sformalizowane, informacja dostarcza kod pracy, który jest zawsze z nim związany. Informacje nigdy nie mogą być statyczne.

Najprostszy przykład enkapsulacji, który dawno został zachowany do dnia dzisiejszego. Trzy zmienne "nazwisko", "nazwa", "patronymiczny", gdziekolwiek się znajdują, zawsze wymagają funkcji dodawania, edytowania, usuwania. Co więcej, te zmienne zapewniają masę konkretnych ludzi, to znaczy, wiele kopii:
  • Iwanow, Iwan, Iwanowicz;
  • Petrova, Irina Vasylivna;
  • Kukushkina, Polina, Grigorievna;
  • i klasa abstrakcyjna
  • "nazwisko", "imię", "patronim";
  • i trzy wieczne funkcje
  • dodaj;
  • zmiana;
  • usunąć.
  • Takie projekty na dowolnym poziomie (adresy, oferty pracy, personel, plan produkcji)możesz dużo myśleć. A złożoność implementacji innego projektu będzie wyjątkowo długa.

    Czas życia wystąpienia enkapsulacji

    Enkapsulacja to dane i kod.
  • Słowo - enkapsulacja.
  • Wersja łacińska - w capsula.
  • Słowo "kapsuła" jest tym, co oznacza. Co wiele języków i programiści dodumaly (publiczne, chronione, prywatny) - oddzielny temat i treść lub enkapsulacji względną lub prymenytelnoe postawę. Ogólnie rzecz biorąc, należy skopiować - to tylko wersja (pleśń, czas), a dane te trzy metody żyje wiecznie. Kod jako filtr informacyjnego „zapewnia” żywe okazy, bo jest taka sama dla wszystkich, a przy okazji, do tej pory:
  • kod „stałe”;
  • oznacza najprostszy niezmienny efekt.
  • Ale druga kopia może „wyrzucić” Focus „Jeśli próbka nadana firmie Rekrutacja, szczególnie ważnej w zestawie kopii będzie dyrektor i księgowy. Inni mogą zatrzymać się w normalnej formie.” Dyrektor i księgowy mogą mieć własne kody, to znaczy ich funkcje. Oznacza to, że życie instancji nie zawsze zależy od funkcjonalności trzech magicznych słów:
  • dodaj;
  • zmiana;
  • usunąć.
  • Jeżeli przykład skierowany do pierwszego załogowego lotu w kosmos, to tuzin kandydatów na pierwszy astronauta będzie dużo specjalną funkcjonalność, dobre sto osób (kopie) będą im nadzorować specjalnego, ale istnieje wiele opcji dla profesjonalistów, które będą bardzo wiele specjalnych funkcji.

    Na początku OWP

    „Musimy pilnie coś zmienić” - pomyślał pewną liczbę deweloperów orazJako dobry przykład zasugerowałem pracę z obiektami w Turbo Pascal 6.0 Professional. To nie jest idealna oferta, ale bardzo wysoka jakość jest prosta i skuteczna.

    Wykorzystanie że „hermetyzacja, polimorfizm, dziedziczenie - jest fundamentem obiektu, uzyskać dobry start Polimorfizm zapewnia niezbędne dynamikę, ponieważ przypadki mogą mieć różną funkcjonalność ta powinna jakoś..” Legitymizacji „siłownia dziedziczenia. stwarza okazję do zastanowienia się jednolitość w domu, zbudować drzewo genealogiczne sformalizowanego informacja brzmi trudne Umieszczenie tych danych Encapsulation -... prostą integrację danych i kodu, wszystko jest łatwiejsze i istnieje wielka koncepcja Object - dane i kod. Instancja obiektu - to tylko dane, które ma dostęp do kodu. kopie mogą być zbyt dużo, ale kod dla nich nie zawsze jest dołączony do każdego, kto jeszcze dostępne dla każdego. Kiedy instancja obiektu wymaga szczególnej uwagi, po prostu mieć jeden obiekt, który zostanie zwiększona funkcjonalność, to znaczy, że dziedziczy wszystko, co było w oryginalnym obiektem, ale dodaje coś.
    Świat aktualizowane instancje drugiego obiektu w którym znajdują się również nowe wymagania. Nowa funkcjonalność i nowy obiekt. Ale nie każdy nowy obiekt może mieć potomków. Niektórzy już ich nie potrzebują. W wyniku tej budowy uzyskuje się rozgałęziony obraz obiektów, w rzeczywistości daje życie dużej ilości kopii powiązanych ze sobą rodowodami i związkami funkcjonalnymi. Idealnym sposobem na wykonanie zadania w stylu OOP jest momentenkapsulacja, polimorfizm, dziedziczenie są tak przemyślane, że kod w programie jest całkowicie nieobecny. Obiekty same wykonują swoje funkcje, używają tylko swojego kodu, budują ze sobą relacje.

    Życie OOP

    W rzeczywistości wszystko wygląda zupełnie inaczej. Hermetyzacja jest dobra i nie kłócisz się tutaj. Ale aby poprawnie skonstruować obraz obiektów, przemyśleć ich funkcjonalność, przewidzieć, jak pewne lub inne wystąpienia, których można się spodziewać po danych, zachowają się niełatwo. Musiałem uprościć sytuację, a OOP podążał ścieżką automatyzacji pracy programisty, zamiast rozwiązywać prawdziwe problemy. Z punktu widzenia szybkości zdobywania doświadczenia - jest to skuteczny pomysł, bo co powinien zrobić OOP, aby zautomatyzować pracę księgową, kiedy można ją dodać do menu na stronie HTML? To bardzo proste: istnieje pozycja menu, są jej warianty. Możesz zaproponować użytkownikowi wybór opcji menu (pionowe, poziome, rozwijane), możesz nadać przyciskom kształt (okrągłe, kwadratowe, zaokrąglone itp.).
    Niewiele osób jest zainteresowanych pracą i życiem dewelopera. Każdy potrzebuje księgowości, produkcji i szkoleń, ponieważ trzeba wykonać prawdziwe zadania. Więc musisz zwiększyć zespoły, ale wtedy system obiektów zostanie zaimplementowany przez różnych specjalistów i mogą zaszkodzić sobie nawzajem. Pod wieloma względami umieszcza OWP na szynach produkcyjnych. Już nie było wątpliwości: hermetyzacja, dziedziczenie to dobra droga, ale jak chronić przedmioty przed ingerencją stron trzecich, zarówno z boku, jak i poprzez rodowód rodowodu? To niekoniecznie jest hakerem.Przypadkowe uszkodzenie poprzez zmianę danych twojego przodka, może innego dewelopera. Nowoczesne programowanie jest dużo programistów, którzy są w zestawie zdalnych biur. Jako pszczoły, nowi programiści budują jedną wspólną strukturę obiektów. Każdy obiekt musi być zbudowany zgodnie z ogólnymi zasadami, a dane i metody, na które jeden programista odpowiada, nie mogą być dostępne dla innych. Kiedy ktoś czegoś potrzebuje - to jest inny temat. Zgodnie z podstawową zasadą wszyscy robią swoje rzeczy w swojej okolicy.

    Enkapsulacja jest dobra, ale

    PHPWord to potężny, dobrze wykonany i obiecujący produkt. Doskonały system obiektów, dobrze przemyślany i skuteczny. Poniżej znajduje się początek opisu wewnętrznego przedmiotu tego produktu. Jeden prosty abstrakcji wszystkich komórek tabeli pustą abstrakcją - pojemnik. A to daleko od całego opisu.
    Nie trzeba zanurzać się w błocie, aby zrozumieć. Stosując to wiele komentarzy dodaje jasności i mowy chronione, prywatne i publiczne nie powiedzieć przede wszystkim, że deweloper osobę trzecią przy użyciu tej biblioteki zmieniło się w odpowiednim miejscu prywatnej do publicznej wiadomości (patrz komentarz jest:. „Sc 19062016 był Privat”) . Fakt ten błędy w kodzie, że deweloper aplikacji musiały zostać skorygowane, a zatem musiał coś zmienić. Możemy przypuszczać, że w trakcie rozwoju trzeba ograniczyć dostęp do niektórych stron, ale jest jeszcze jeden ważny w ogóle. Istnieją przypadki życia obiektów życia, ale nie jest nowe życie - co się dzieje z obiektów systemowych w jej stosowaniu. Życie w projektowaniu i życie w aplikacji. Charakterystycznececha nowoczesnego programowania - sztywna negacja ciągłości. Wcześniej deweloper zapewnił, że każda nowa wersja będzie uzupełniać i poprawić poprzedni, teraz każdą nową wersję środowiska programowania obiektowy język radykalnie albo przynajmniej zasadniczo różni się od poprzedniej. Nawet warunki hostingu w usłudze hostingowej mogą ulec zmianie, więc będziesz musiał przetworzyć kod. I często jest to bardzo trudne.

    Dobra dziedziczność, dobre wyjście

    Żadnych błędów nikt nie jest ubezpieczony. A każda nowa firma wymaga wiedzy. PHPWord jest dobrą biblioteką i musisz się do tego przyzwyczaić. Wielu specjalistów spędzało dużo czasu. Programista, który ma zamiar go zastosować, musi poświęcić wystarczająco dużo czasu na przestudiowanie struktury pliku Vordovian. To nie jest tajemnica. System obiektów PHPWord będzie przejrzysty i dostępny. Podaje się go takim, jaki jest, ale jeśli istnieje chęć pójścia dalej, ponieważ obecna funkcjonalność to za mało. Dobry pomysł. To jest inny system obiektów i lepiej, jeśli idzie dalej. Nie jest tak źle koncepcja sztywnego odrzucenia ciągłości: pobudza rozwój wiedzy. Obiekty budowane przez jeden zespół programistów to ich refleksja nad tym, jak rozwiązać zadanie, jak reprezentować jego funkcjonalność.
    Zrozumienie tej decyzji przez inną firmę deweloperską jest transformacją doświadczenia. Jeśli wyobrażasz sobie, że to tylko prototyp pożądanego systemu obiektów, dlaczego po prostu go nie odziedziczysz? Dobrym dziedziczność - posiadają naturalną inteligencję, oczekują czegoś od odpowiedniego programowania - jest od obszaruprzyszłość, chociaż najbliższa.

    były kapsułkowanie

    Encapsulation - nie jest to połączenie danych i kodu. Ta kombinacja pożądane przystępne. Jeśli uważasz, że nie ma danych i algorytmów i zaakceptować rzeczywistość i dokonać odpowiedniego hermetyzacja, dziedziczenie jest działanie od dewelopera do dostawcy, jest prawdopodobne, wygląd obiektów ruchomych i samorazvyvayuschyhsya, nadal możliwe.

    Powiązane publikacje