Design Principles and Patterns (German)
-
Upload
soulaiman-ghanem -
Category
Software
-
view
166 -
download
2
Transcript of 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
INHALT
• OOP Säulen
• S.O.L.I.D Design Prinzipien
• Design Prinzipien
• Beispiel
2
OOP SÄULENENCAPSUL ATION, INHERITANCE & POLYMORPHISM
• Objekt kapselt Daten und Methoden
• Ausblenden interne Implementierung
3
OOP SÄULENENCAPSUL ATION, INHERITANCE & POLYMORPHISM
• Unterklasse ist abgeleitet von
vorhandener Klasse
• Unterklasse kann neue Daten und
Methoden definieren
4
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
INHALT
• OOP Säulen
• S.O.L.I.D Design Prinzipien
• Design Prinzipien
• Beispiel
6
DIE S.O.L.I.D DESIGN PRINZIPIENSRP,OCP,LSP,ISP,DIP, DI&IOC
• Single Responsibility Principle (SRP)
• Objekt hat genau eine Aufgabe
7
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
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
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
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
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
INHALT
• OOP Säulen
• S.O.L.I.D Design Principles
• Design Patterns
• Beispiel
13
DESIGN PATTERN GRUPPENCREATIONAL , STRUCTURAL , BEHAVIORAL
• Patterns behandeln Objekterstellung und
Referenzierung
• Abstract Factory, Factory, Builder, Prototype und
Singleton
14
DESIGN PATTERN GRUPPENCREATIONAL , STRUCTURAL , BEHAVIORAL
• Patterns behandeln Zusammensetzung
und Beziehungen zwischen Objekten
• Adapter, Bridge, Composite, Decorator,
Façade, Flyweight und Proxy
15
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
INHALT
• OOP Säulen
• S.O.L.I.D Design Principles
• Design Patterns
• Beispiel
17
1 2
3
18
REFACTORING : DESIGN PRINZIPIEN
• Dependency Inversion Principle (DIP)
19
2
20
3
21
REFACTORING: DESIGN PRINZIPIEN
• Dependency Injection (DI)
22
3
23
3
24
REFACTORING: DESIGN PATTERNS
• Adapter Design Pattern
25
ICacheStorage
+Retrieve()
+Store()
+Remove
HttpContextCacheAdapter
+Retrieve()
+Store()
+Remove
TrefferService
HttpContext
+Get()
+Insert()
+Remove()
ADAPTER
Derives
Uses
Uses
26
4
27
KISS PRINZIP, DANKE
28