Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

OOP, Desing Patterns … and more Michał Dubel

Podobne prezentacje


Prezentacja na temat: "OOP, Desing Patterns … and more Michał Dubel"— Zapis prezentacji:

1 OOP, Desing Patterns … and more Michał Dubel

2 Clean Code – krótkie wprowadzenie, bardzo krótkie Podstawy OOP - pojęcia SOLID Design Patterns Bibliografia Q&A A wszystko okraszone kodem Agenda

3 Kod nie musi być długi, aby być nieczytelny public List getThem() { List list1 = new ArrayList<>(); for (int[] x : theList) if (x[0] == 4) list1.add(x); return list1; } Co biznesowo robi ta metoda? Clean Code

4 Kod nie musi być długi, aby być nieczytelny public List getFlaggedCells() { List flaggedCells = new ArrayList<>(); for (int[] cell : gameBoard) if (cell[STATUS_VALUE] == FLAGGED) flaggedCells.add(cell); return flaggedCells; } Clean Code

5 Jeszcze lepsze uporządkowanie kodu public List getFlaggedCells() { List flaggedCells = new ArrayList<>(); for (Cell cell : gameBoard) if (cell.isFlagged()) flaggedCells.add(cell); return flaggedCells; } Clean Code – możemy nawet lepiej !

6 OOP – paradygmat programowania – obiekty mające stan i zachowanie Znamy też: Programowanie Imperatywne (jak działa program) Programowanie proceduralne Programowanie deklaratywne (co chcemy osiągnąć ? Warunki końcowe – a nie jak to osiągnąć) Programowanie funkcyjne (funkcje należą do wartości podstawowych) …oraz wiele innych OOP - podstawy

7 Klasa (stan, zachowanie) Hermetyzacja (aka enkapsulacja) Dziedziczenie Polimorfizm OOP - pojęcia

8 Zwierzęta jako przykład polimorficzny OOP – szybki przykład polimorfizmu

9 S ingle responsibility principle O pen/closed principle L iskov substitution principle I nterface segregation principle D ependency inversion principle SOLID - mnemonic acronym introduced by Michael Feathers for the "first five principles" named by Robert C. Martin in the early 2000s that stands for five basic principles of object- oriented programming and design. SOLID Principles

10 Wstrzykiwanie zależności oraz luźne powiązania na rycerskim przykładzie P.S. Nie mylcie „Injection” z „Inversion” ! Dependency Injection - przykład

11 Preferuj kompozycję (MA) nad dziedziczenie (JEST) Open-Closed principle Dependency Inejction Przykład: Kacze Opowieści OOP

12 OOP – chcielibyśmy dodać możliwość latania

13

14

15

16 Czyli wszystko (prawie) o tworzeniu obiektów co chcieliście wiedzieć ale baliście się zapytać. Przykład: Pizza Tworzenie obiektów

17 Jak pozbyć się IF’ów ? No more IF Polimorficznie ! Jak pozbyć się IF’ów ?

18

19

20

21

22 Design patterns classification:  Creational patterns:  Singleton  Factory  Factory Method  Structural patterns:  Adapter  Facade  Decorator  Proxy  Behavioarl patterns:  Template Method  Observer  Strategy O czym nie powiedzieliśmy ?

23 Polecane lektury: Robert C. Martin „Clean Code” Joshua Bloch „Effective Java” Eric Freeman, Elisabeth Freeman „Head First, Design Patterns” Bibliografia

24 Dziękuję za uwagę


Pobierz ppt "OOP, Desing Patterns … and more Michał Dubel"

Podobne prezentacje


Reklamy Google