Design Principles and Patterns (German)

28
OOP & DESIGN PRINZIPIEN 22.02.2016

Transcript of Design Principles and Patterns (German)

Page 1: Design Principles and Patterns (German)

O O P & D E S I G N

P R I N Z I P I E N

2 2 . 0 2 . 2 0 1 6

Page 2: Design Principles and Patterns (German)

INHALT

• OOP Säulen

• S.O.L.I.D Design Prinzipien

• Design Prinzipien

• Beispiel

2

Page 3: Design Principles and Patterns (German)

OOP SÄULENENCAPSUL ATION, INHERITANCE & POLYMORPHISM

• Objekt kapselt Daten und Methoden

• Ausblenden interne Implementierung

3

Page 4: Design Principles and Patterns (German)

OOP SÄULENENCAPSUL ATION, INHERITANCE & POLYMORPHISM

• Unterklasse ist abgeleitet von

vorhandener Klasse

• Unterklasse kann neue Daten und

Methoden definieren

4

Page 5: Design Principles and Patterns (German)

OOP SÄULENENCAPSUL ATION, INHERITANCE & POLYMORPHISM

• Lamp-Wire-Battery

public static LightOn( Battery bat)

{ // connect the lamp and the battery using the wire }

LightOn(cubeBat); LightOn(bigBat); LightOn(smallBat);

Battery

CubeBattery: Battery

SmallBattery: Battery

BigBattery: Battery

5

Page 6: Design Principles and Patterns (German)

INHALT

• OOP Säulen

• S.O.L.I.D Design Prinzipien

• Design Prinzipien

• Beispiel

6

Page 7: Design Principles and Patterns (German)

DIE S.O.L.I.D DESIGN PRINZIPIENSRP,OCP,LSP,ISP,DIP, DI&IOC

• Single Responsibility Principle (SRP)

• Objekt hat genau eine Aufgabe

7

Page 8: Design Principles and Patterns (German)

DIE S.O.L.I.D DESIGN PRINZIPIENSRP,OCP,LSP,ISP,DIP, DI&IOC

• Open-Close Principle (OCP)

• Open for extension

• Close for modification

8

Page 9: Design Principles and Patterns (German)

DIE S.O.L.I.D DESIGN PRINZIPIENSRP,OCP,LSP,ISP,DIP, DI&IOC

• Liskov Substitution Principle (LSP)

• Wenn ein Programm mit der Klasse A

richtig ist, dann ist es auch noch richtig,

wenn wir die Objekte von A mit den

Objekten von B ersetzen wobei B von A

abgeleitet ist

9

Page 10: Design Principles and Patterns (German)

DIE S.O.L.I.D DESIGN PRINZIPIENSRP,OCP,LSP,ISP,DIP, DI&IOC

• Interface Segregation Principle (ISP)

• Viele spezialisierte Schnittstellen sind

besser als eine Allzweck-Schnittstelle

10

Page 11: Design Principles and Patterns (German)

DIE S.O.L.I.D DESIGN PRINZIPIENSRP,OCP,LSP,ISP,DIP, DI&IOC

• Dependency Inversion Principle (DIP)

• Gegen Abstraktion (Interface)

implementieren und nicht gegen konkrete

Klasse

• Module entkoppeln

11

Page 12: Design Principles and Patterns (German)

DIE S.O.L.I.D DESIGN PRINZIPIENSRP,OCP,LSP,ISP,DIP, DI&IOC

• Dependency Injection (DI)

• Abhängigkeit über Konstruktor, Methode

oder Property zurVerfügung stellen

• Inversion of Control (IoC)

• IoC container invertiert die

Ablaufsteuerung des Programms

12

Page 13: Design Principles and Patterns (German)

INHALT

• OOP Säulen

• S.O.L.I.D Design Principles

• Design Patterns

• Beispiel

13

Page 14: Design Principles and Patterns (German)

DESIGN PATTERN GRUPPENCREATIONAL , STRUCTURAL , BEHAVIORAL

• Patterns behandeln Objekterstellung und

Referenzierung

• Abstract Factory, Factory, Builder, Prototype und

Singleton

14

Page 15: Design Principles and Patterns (German)

DESIGN PATTERN GRUPPENCREATIONAL , STRUCTURAL , BEHAVIORAL

• Patterns behandeln Zusammensetzung

und Beziehungen zwischen Objekten

• Adapter, Bridge, Composite, Decorator,

Façade, Flyweight und Proxy

15

Page 16: Design Principles and Patterns (German)

DESIGN PATTERN GRUPPENCREATIONAL , STRUCTURAL , BEHAVIORAL

• Patterns behandeln Kommunikation zwischen

Objekten

• Chain of Responsibility, Command, Interpreter,

Iterator, Mediator, Memento, Observer, State,

Strategy, Template Method und Visitor

16

Page 17: Design Principles and Patterns (German)

INHALT

• OOP Säulen

• S.O.L.I.D Design Principles

• Design Patterns

• Beispiel

17

Page 18: Design Principles and Patterns (German)

1 2

3

18

Page 19: Design Principles and Patterns (German)

REFACTORING : DESIGN PRINZIPIEN

• Dependency Inversion Principle (DIP)

19

Page 20: Design Principles and Patterns (German)

2

20

Page 21: Design Principles and Patterns (German)

3

21

Page 22: Design Principles and Patterns (German)

REFACTORING: DESIGN PRINZIPIEN

• Dependency Injection (DI)

22

Page 23: Design Principles and Patterns (German)

3

23

Page 24: Design Principles and Patterns (German)

3

24

Page 25: Design Principles and Patterns (German)

REFACTORING: DESIGN PATTERNS

• Adapter Design Pattern

25

Page 26: Design Principles and Patterns (German)

ICacheStorage

+Retrieve()

+Store()

+Remove

HttpContextCacheAdapter

+Retrieve()

+Store()

+Remove

TrefferService

HttpContext

+Get()

+Insert()

+Remove()

ADAPTER

Derives

Uses

Uses

26

Page 27: Design Principles and Patterns (German)

4

27

Page 28: Design Principles and Patterns (German)

KISS PRINZIP, DANKE

28