SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
OOP &
DESIGN
PRINZIPIEN
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ÄULEN
ENCAPSULATION, INHERITANCE & POLYMORPHISM
• Objekt kapselt Daten und Methoden
• Ausblenden interne Implementierung
3
OOP SÄULEN
ENCAPSULATION, INHERITANCE & POLYMORPHISM
• Unterklasse ist abgeleitet von
vorhandener Klasse
• Unterklasse kann neue Daten und
Methoden definieren
4
OOP SÄULEN
ENCAPSULATION, 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 PRINZIPIEN
SRP,OCP,LSP,ISP,DIP, DI&IOC
• Single Responsibility Principle (SRP)
• Objekt hat genau eine Aufgabe
7
DIE S.O.L.I.D DESIGN PRINZIPIEN
SRP,OCP,LSP,ISP,DIP, DI&IOC
• Open-Close Principle (OCP)
• Open for extension
• Close for modification
8
DIE S.O.L.I.D DESIGN PRINZIPIEN
SRP,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 PRINZIPIEN
SRP,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 PRINZIPIEN
SRP,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 PRINZIPIEN
SRP,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 GRUPPEN
CREATIONAL, STRUCTURAL, BEHAVIORAL
• Patterns behandeln Objekterstellung und
Referenzierung
• Abstract Factory, Factory, Builder, Prototype und
Singleton
14
DESIGN PATTERN GRUPPEN
CREATIONAL, STRUCTURAL, BEHAVIORAL
• Patterns behandeln Zusammensetzung
und Beziehungen zwischen Objekten
• Adapter, Bridge, Composite, Decorator,
Façade, Flyweight und Proxy
15
DESIGN PATTERN GRUPPEN
CREATIONAL, STRUCTURAL, BEHAVIORAL
• Patterns behandeln Kommunikation zwischen
Objekten
• Chain of Responsibility, Command, Interpreter,
Iterator, Mediator, Memento, Observer, State,
Strategy,Template Method undVisitor
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

Weitere ähnliche Inhalte

Andere mochten auch

ApresentaçãO Pinus Pinaster
ApresentaçãO Pinus PinasterApresentaçãO Pinus Pinaster
ApresentaçãO Pinus Pinaster
saoegena
 
Cartilla exodo nivel_medio_web
Cartilla exodo nivel_medio_webCartilla exodo nivel_medio_web
Cartilla exodo nivel_medio_web
Pablo Amante Gyej
 
Para a Minha Irmã
Para a Minha IrmãPara a Minha Irmã
Para a Minha Irmã
blackshark
 

Andere mochten auch (18)

Prezentacja Kainos
Prezentacja KainosPrezentacja Kainos
Prezentacja Kainos
 
ApresentaçãO Pinus Pinaster
ApresentaçãO Pinus PinasterApresentaçãO Pinus Pinaster
ApresentaçãO Pinus Pinaster
 
Cartilla exodo nivel_medio_web
Cartilla exodo nivel_medio_webCartilla exodo nivel_medio_web
Cartilla exodo nivel_medio_web
 
Perheyritysbarometri 2015
Perheyritysbarometri 2015Perheyritysbarometri 2015
Perheyritysbarometri 2015
 
Mobie OnEduHR
Mobie OnEduHRMobie OnEduHR
Mobie OnEduHR
 
Presentacion
PresentacionPresentacion
Presentacion
 
Prezentacja DeSmart
Prezentacja DeSmartPrezentacja DeSmart
Prezentacja DeSmart
 
Brochure2
Brochure2Brochure2
Brochure2
 
Gordon Biersch Final Book
Gordon Biersch Final BookGordon Biersch Final Book
Gordon Biersch Final Book
 
Memahami Al-Qur’an dan Al-Hadistt sebagai pedoman hidup
Memahami Al-Qur’an dan Al-Hadistt sebagai pedoman hidupMemahami Al-Qur’an dan Al-Hadistt sebagai pedoman hidup
Memahami Al-Qur’an dan Al-Hadistt sebagai pedoman hidup
 
Youth mental health resources from 2016 NJLA Conference
Youth mental health resources from 2016 NJLA ConferenceYouth mental health resources from 2016 NJLA Conference
Youth mental health resources from 2016 NJLA Conference
 
Para a Minha Irmã
Para a Minha IrmãPara a Minha Irmã
Para a Minha Irmã
 
Menestyvät yliopistot
Menestyvät yliopistotMenestyvät yliopistot
Menestyvät yliopistot
 
Its Monster, Final Pp
Its Monster, Final PpIts Monster, Final Pp
Its Monster, Final Pp
 
SRP & OCP
SRP & OCPSRP & OCP
SRP & OCP
 
Prezentacja Blue Media
Prezentacja Blue MediaPrezentacja Blue Media
Prezentacja Blue Media
 
Diapositivas archivo ejercito nacional
Diapositivas archivo ejercito nacionalDiapositivas archivo ejercito nacional
Diapositivas archivo ejercito nacional
 
Al - Quran sebagai Pedoman Hidup Manusia
Al - Quran sebagai Pedoman Hidup ManusiaAl - Quran sebagai Pedoman Hidup Manusia
Al - Quran sebagai Pedoman Hidup Manusia
 

Ähnlich wie Design Principles and Patterns (German)

OOCSS Session Barcamp Mainz 2009
OOCSS Session Barcamp Mainz 2009OOCSS Session Barcamp Mainz 2009
OOCSS Session Barcamp Mainz 2009
ogleba
 

Ähnlich wie Design Principles and Patterns (German) (20)

CDI
CDICDI
CDI
 
Koordination innerhalb großer APEX Projekte
Koordination innerhalb großer APEX ProjekteKoordination innerhalb großer APEX Projekte
Koordination innerhalb großer APEX Projekte
 
Webinar - Entwurfsmuster in ABAP
Webinar - Entwurfsmuster in ABAPWebinar - Entwurfsmuster in ABAP
Webinar - Entwurfsmuster in ABAP
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
 
OOP Principles
OOP PrinciplesOOP Principles
OOP Principles
 
OOCSS Session Barcamp Mainz 2009
OOCSS Session Barcamp Mainz 2009OOCSS Session Barcamp Mainz 2009
OOCSS Session Barcamp Mainz 2009
 
Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
 
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
 
Domain-Specific Languages (DSLs) entwickeln und anwenden
Domain-Specific Languages (DSLs) entwickeln und anwendenDomain-Specific Languages (DSLs) entwickeln und anwenden
Domain-Specific Languages (DSLs) entwickeln und anwenden
 
Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)
 
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga 2009 at Nagios Workshop
Icinga 2009 at Nagios Workshop
 
JSF Anwendungen testen mit AcceptIt
JSF Anwendungen testen mit AcceptItJSF Anwendungen testen mit AcceptIt
JSF Anwendungen testen mit AcceptIt
 
What’s new in Apache Solr 4.7 und Elasticsearch 1.1
What’s new in Apache Solr 4.7 und Elasticsearch 1.1What’s new in Apache Solr 4.7 und Elasticsearch 1.1
What’s new in Apache Solr 4.7 und Elasticsearch 1.1
 
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?
 
Heterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle DatenbankHeterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle Datenbank
 
Agile Softwareentwicklung mit Lotus Notes
Agile Softwareentwicklung mit Lotus NotesAgile Softwareentwicklung mit Lotus Notes
Agile Softwareentwicklung mit Lotus Notes
 
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
 
Developing UXD - Workshop bei XING
Developing UXD - Workshop bei XINGDeveloping UXD - Workshop bei XING
Developing UXD - Workshop bei XING
 
Oracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpiOracle hadoop doag-big-data_09_2014_gpi
Oracle hadoop doag-big-data_09_2014_gpi
 

Design Principles and Patterns (German)