Saturday 3rd December 2022

Myślenie obiektowe w programowaniu

Opis

Myślenie obiektowe w programowaniu

Burzliwy rozwój obiektowości nastąpił w połowie lat 90. wraz z upowszechnieniem się takich języków jak C++ czy Smalltalk. Obecnie programowanie zorientowane obiektowo wciąż jest jednym z najważniejszych paradygmatów projektowania. Łatwo zauważyć, że większość nowoczesnych języków programowania i technologii sieciowych opiera się na technikach obiektowych. Nieco trudniej jest dostrzec, że mimo szybkiego ewoluowania technik i języków programistycznych podstawowe pojęcia programowania obiektowego pozostają niezmienne i niezależne od jakiejkolwiek platformy. Początkujący programiści powinni więc poświęcić nieco czasu na zapoznanie się z tymi pojęciami i naukę czegoś, co można nazwać „myśleniem obiektowym w programowaniu”.Ta książka jest kolejnym, poprawionym i uzupełnionym wydaniem wyczerpującego wprowadzenia do programowania zorientowanego obiektowo. Jej głównym celem jest przedstawienie podstaw myślenia obiektowego i najważniejszych pojęć w tym zakresie. Wyjaśniono tu, w jaki sposób poprawnie posługiwać się dziedziczeniem i kompozycją, odróżniać agregację od asocjacji oraz zrozumieć różnice między interfejsem a implementacją. Szczególną uwagę zwrócono na technologie, które przetrwały próbę czasu ostatnich 20 lat i stały się rdzeniem koncepcji programowania obiektowego. Opisano też najważniejsze wzorce projektowe, wskazano techniki unikania zależności i zaprezentowano zasady zwane SOLID, których przestrzeganie pozwala tworzyć kod wysokiej jakości, zrozumiały i elastyczny.Dzięki tej książce:zrozumiesz podstawowe pojęcia obiektowościzaczniesz myśleć abstrakcyjnie podczas projektowania interfejsównauczysz się budowy i zasad modelowania klasbędziesz tworzyć kod, który będzie się nadawał do wielokrotnego wykorzystaniazaczniesz unikać zależności i silnych powiązań między klasamiprzyswoisz sobie i będziesz stosować zasady SOLIDTechniki obiektowe. Zrozum, zanim zaimplementujesz!Spis treści:O autorze 11Podziękowania 11Wstęp 13Rozdział 1. Podstawowe pojęcia obiektowości 17Podstawowe pojęcia 17Obiekty a stare systemy 18Programowanie obiektowe a proceduralne 19Zamiana podejścia proceduralnego na obiektowe 23Programowanie proceduralne 23Programowanie obiektowe 23Definicja obiektu 24Dane obiektu 24Zachowania obiektu 24Definicja klasy 28Tworzenie obiektów 28Atrybuty 30Metody 30Komunikaty 30Modelowanie klas przy użyciu diagramów UML 31Hermetyzacja i ukrywanie danych 31Interfejsy 31Implementacje 32Realistyczna ilustracja paradygmatu interfejsu i implementacji 33Model paradygmatu interfejs – implementacja 33Dziedziczenie 34Nadklasy i podklasy 35Abstrakcja 36Związek typu „jest” 37Polimorfizm 38Kompozycja 41Abstrakcja 41Związek typu „ma” 41Podsumowanie 41Rozdział 2. Myślenie w kategoriach obiektowych 43Różnica między interfejsem a implementacją 44Interfejs 46Implementacja 46Przykład implementacji i interfejsu 47Zastosowanie myślenia abstrakcyjnego w projektowaniu interfejsów 51Minimalizowanie interfejsu 52Określanie grupy docelowej 53Zachowania obiektu 54Ograniczenia środowiska 54Identyfikowanie publicznych interfejsów 54Identyfikowanie implementacji 55Podsumowanie 56Źródła 56Rozdział 3. Inne pojęcia z zakresu obiektowości 57Konstruktory 57Kiedy wywoływany jest konstruktor 58Zawartość konstruktora 58Konstruktor domyślny 58Zastosowanie wielu konstruktorów 59Projektowanie konstruktorów 63Obsługa błędów 63Ignorowanie problemu 64Szukanie błędów i kończenie działania programu 64Szukanie błędów i próba ich naprawienia 64Zgłaszanie wyjątków 65Pojęcie zakresu 67Atrybuty lokalne 67Atrybuty obiektowe 68Atrybuty klasowe 70Przeciążanie operatorów 71Wielokrotne dziedziczenie 72Operacje obiektów 73Podsumowanie 74Źródła 74Rozdział 4. Anatomia klasy 75Nazwa klasy 75Komentarze 77Atrybuty 77Konstruktory 78Metody dostępowe 80Metody interfejsu publicznego 83Prywatne metody implementacyjne 83Podsumowanie 84Źródła 84Rozdział 5. Wytyczne dotyczące projektowania klas 85Modelowanie systemów świata rzeczywistego 85Identyfikowanie interfejsów publicznych 86Minimalizacja interfejsu publicznego 86Ukrywanie implementacji 87Projektowanie niezawodnych konstruktorów i destruktorów 88Projektowanie mechanizmu obsługi błędów w klasie 89Pisanie dokumentacji i stosowanie komentarzy 89Tworzenie obiektów nadających się do kooperacji 90Wielokrotne użycie kodu 90Rozszerzalność 91Tworzenie opisowych nazw 91Wyodrębnianie nieprzenośnego kodu 92Umożliwianie kopiowania i porównywania obiektów 92Ograniczanie zakresu 93Konserwacja kodu 94Iteracja 94Testowanie interfejsu 95Wykorzystanie trwałości obiektów 96Serializacja i szeregowanie obiektów 97Podsumowanie 98Źródła 98Rozdział 6. Projektowanie z wykorzystaniem obiektów 99Wytyczne dotyczące projektowania 99Wykonanie odpowiedniej analizy 103Określanie zakresu planowanych prac 103Gromadzenie wymagań 103Tworzenie prototypu systemu 104Identyfikowanie klas 104Definiowanie wymagań wobec każdej z klas 104Określenie warunków współpracy między klasami 104Tworzenie modelu klas opisującego system 104Tworzenie prototypu interfejsu użytkownika za pomocą kodu 105Obiekty opakowujące 105Kod strukturalny 106Opakowywanie kodu strukturalnego 107Opakowywanie nieprzenośnego kodu 108Opakowywanie istniejących klas 109Podsumowanie 110Źródła 110Rozdział 7. Dziedziczenie i kompozycja 111Wielokrotne wykorzystywanie obiektów 111Dziedziczenie 112Generalizacja i specjalizacja 115Decyzje projektowe 116Kompozycja 118Reprezentowanie kompozycji na diagramach UML 118Czemu hermetyzacja jest podstawą technologii obiektowej 120Jak dziedziczenie osłabia hermetyzację 121Szczegółowy przykład wykorzystania polimorfizmu 123Odpowiedzialność obiektów 123Klasy abstrakcyjne, metody wirtualne i protokoły 126Podsumowanie 127Źródła 128Rozdział 8. Wielokrotne wykorzystanie kodu – interfejsy i klasy abstrakcyjne 129Wielokrotne wykorzystanie kodu 129Infrastruktura programistyczna 130Co to jest kontrakt 132Klasy abstrakcyjne 133Interfejsy 135Wnioski 137Dowód kompilatora 139Zawieranie kontraktu 140Punkty dostępowe do systemu 142Przykład biznesu elektronicznego 142Biznes elektroniczny 142Podejście niezakładające wielokrotnego wykorzystania kodu 143Rozwiązanie dla aplikacji biznesu elektronicznego 145Model obiektowy UML 145Podsumowanie 148Źródła 148Rozdział 9. Tworzenie obiektów i projektowanie obiektowe 149Relacje kompozycji 149Podział procesu budowy na etapy 151Rodzaje kompozycji 153Agregacja 153Asocjacja 153Łączne wykorzystanie asocjacji i agregacji 155Unikanie zależności 155Liczność 156Kilka asocjacji 158Asocjacje opcjonalne 159Praktyczny przykład 160Podsumowanie 161Źródła 161Rozdział 10. Wzorce projektowe 163Historia wzorców projektowych 164Wzorzec MVC języka Smalltalk 165Rodzaje wzorców projektowych 166Wzorce konstrukcyjne 167Wzorzec Metoda Fabryczna 168Wzorce strukturalne 170Wzorce czynnościowe 172Antywzorce 174Podsumowanie 175Źródła 175Rozdział 11. Jak uniknąć zależności i silnych powiązań między klasami 177Kompozycja a dziedziczenie i wstrzykiwanie zależności 1791. Dziedziczenie 1792. Kompozycja 181Wstrzykiwanie zależności 183Wstrzykiwanie przez konstruktor 185Wstrzykiwanie za pomocą metody ustawiającej 185Podsumowanie 186Źródła 186Rozdział 12. Zasady SOLID projektowania obiektowego 187Zasady SOLID projektowania obiektowego 1881. Zasada jednej odpowiedzialności – SRP 1882. Zasada „otwarty/zamknięty” – OCP 1913. Zasada podstawiania Liskov – LSP 1934. Zasada segregacji interfejsów – IPS 1955. Zasada odwrócenia zależności – DIP 196Podsumowanie 201Źródła 202O autorze: Matt Weisfeld jest wykładowcą, programistą oraz pisarzem. Mieszka w Cleveland w Ohio. Wcześniej pracował 20 lat w branży informatycznej jako programista, przedsiębiorca, szkoleniowiec prowadzący szkolenia dla firm oraz wykładowca kontraktowy. Weisfeld ma tytuł magistra informatyki i dyplom magistra zarządzania. Oprócz książki Myślenie obiektowe w programowaniu, napisał jeszcze dwie inne książki dotyczące programowania oraz opublikował wiele artykułów w wielu ważnych czasopismach branżowych.

kuźmińscy mara, przeklęte przedmioty, zupomania książka, gangsta granny, opracowania lektur i wierszy 4-6, mustang z dzikiej doliny droga do wolności dubbing, pippi wchodzi na pokład, plan wrocławia z ulicami, paragraf 44, the saga of tanya the evil, bileciki do prezentów, bekher nana, empik legionowo, colton burpo, ortografia na bardzo dobry, sloje strachu, między światem a mną, rosyjsko polski słownik, zaraza piotrowski pdf, turtles all the way down

yyyyy

Podręczniki szkolne