Top Banner
YZM 2118 Yazılım Mimarisi ve Tasarımı Yrd. Doç. Dr. Volkan TUNALI Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 YZM 2118 Yazılım Mimarisi ve Tasarımı
46

Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

Dec 28, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

YZM 2118

Yazılım Mimarisi ve Tasarımı

Yrd. Doç. Dr. Volkan TUNALI

Celal Bayar Üniversitesi

Hasan Ferdi Turgutlu Teknoloji Fakültesi

Yazılım Mühendisliği

1 YZM 2118 Yazılım Mimarisi ve Tasarımı

Page 2: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

BÖLÜM – 9.2

Tasarım Prensipleri 2/2

2

Bu bölümde;

Tasarım Prensipleri

ile ilgili konular anlatılacaktır.

YZM 2118 Yazılım Mimarisi ve Tasarımı

Page 3: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

1. Ayrıştırma (Decomposition)

2. Kohezyon (Cohesion)

3. Tek Sorumluluk Prensibi (Single Responsibility)

4. Zayıf Bağlaşım Prensibi (Low Coupling)

5. Yeniden Kullanılabilirlik prensibi (Reusability)

6. Açık – Kapalı Prensibi (OCP)

7. Liskov Yerine Geçme Prensibi (LSP)

8. Bağımlılığı Ters Çevirme Prensibi (DIP)

3

Tasarım Prensipleri

YZM 2118 Yazılım Mimarisi ve Tasarımı

Page 4: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

4

5. Yeniden Kullanılabilirlik (Reusability)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Yeniden kullanılabilirlik nesne yönelimli

programlamanın en önemli özelliklerinden biridir

ve çoğu zaman, yanlış bir yaklaşımla sadece

kalıtımdan ibaret olduğu sanılır.

• Oysa kalıtım yeniden kullanılabilirliği sağlama

noktasında her zaman yeterli olmaz.

• Salt kalıtım yerine, kalıtım ile birlikte nesneler

arasında kompozisyon kurgulanmalıdır.

Page 5: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

5

5. Yeniden Kullanılabilirlik (Reusability) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Yandaki gibi bir raporlama sınıfı

yazıldığında, Rapor sınıfına

gereğinden fazla sorumluluk

yüklenmiştir. Bu sınıftan

türetilen sınıflar yeniden

kullanıma doğru bir örnek teşkil

etmemektedirler.

• Doğru olan yaklaşım Rapor

sınıfının içinde bu işlemleri

kodlamak yerine, veri tabanı ve

yazıcı işlemlerinin ayrı sınıflarda

yapılması ve bu sınıflarla bir

composition sağlanmasıdır.

Page 6: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

6

5. Yeniden Kullanılabilirlik (Reusability) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Doğru Tasarımı:

Page 7: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

7

Black Box ve White Box Kavramları

YZM 2118 Yazılım Mimarisi ve Tasarımı

• GoF doktrin’de yeniden kullanılabilirlik bu kavramlarla

ikiye ayrılmıştır:

– White Box sınıf türetmesine dayalıdır ve salt türetme bazı

tasarımsal sakıncalar doğurabilmektedir.

– Black Box ise nesne kompozisyonuna dayalıdır.

• Yani önceki örnekte ele alınan Rapor sınıfı gibi sarmalayıcı bir

sınıf, VeriTabanilslemleri ve YaziciIslemleri sınıflarına ait

nesneleri kullanarak, yani composition yaparak, "black box

reusability" sağlamaktadır.

Page 8: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

8

6. Açık/Kapalı Prensibi (OCP)

YZM 2118 Yazılım Mimarisi ve Tasarımı

Değişim gerektirmeyen yazılımın ömrü bitmiştir.

• Yazılımlar, kullanıcı beklentileri değiştikçe değişime

uğramaktadır.

• Bu noktada yapılması gereken şey yazılım sisteminin

herhangi bir yerindeki değişimin başka yerlerde de

zincirleme değişim gerektirmeyecek şekilde

tasarlanmasıdır.

• Böylece ufak bir değişimde oluşabilecek kargaşa

engellenmiş olur. Değişim kargaşasını önlemek için

esnemez tasarımlardan uzak durulmalıdır.

Page 9: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

9

6. Açık/Kapalı Prensibi (OCP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

Sistemler gelişime açık, ancak değişime kapalı olmalıdır.

Bertnard Meyer

• Bu prensibe göre, sistemlerdeki değişimleri kodları

değiştirerek gerçekleştirmek yerine yeni kod blokları

eklenerek yapılması öngörülmektedir.

Page 10: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

10

6. Açık/Kapalı Prensibi (OCP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Yandaki UML ile gösterilen

Dortgen ve Cember sınıfları

Sekil sınıfından türetilmiştir. Bu

sınıflar Ciz sınıfı ile

composition yapmaktadır.

• Ciz sınıfı verilen parametreye

bağlı olarak şekli çizecek

fonksiyonu çalıştıracaktır.

• Böyle bir tasarım esnemezdir ve

dolayısıyla kırılgandır.

• Sekil sınıfından yeni bir şekil

sınıfı türetildiğinde Ciz sınıfında

da değişmesi gerekecektir.

Page 11: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

YZM 2118 Yazılım Mimarisi ve Tasarımı 11

6. Açık/Kapalı Prensibi (OCP) (devam...)

Sekil.java Dortgen.java

Cember.java

Page 12: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

YZM 2118 Yazılım Mimarisi ve Tasarımı 12

6. Açık/Kapalı

Prensibi (OCP) (devam...)

Ciz.java

Page 13: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

13

6. Açık/Kapalı Prensibi (OCP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Doğru tasarım Sekil sınıfının soyut sınıf ya da ara yüz şeklinde

tanımlanarak yapılabilir. Bu sınıftan türetilen sınıflar da kendi

ihtiyaçlarına göre implemente edilmelidir.

Page 14: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

YZM 2118 Yazılım Mimarisi ve Tasarımı 14

6. Açık/Kapalı Prensibi (OCP) (devam...)

Sekil.java Dortgen.java

Cember.java

Page 15: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

YZM 2118 Yazılım Mimarisi ve Tasarımı 15

6. Açık/Kapalı Prensibi (OCP) (devam...)

Ciz.java

Page 16: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

16

7. Liskov Yerine Geçme Prensibi (LSP)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Barbara Liskov tarafından formüle edilen ve

Açık-Kapalı prensibi ile yakından ilgili olan bu

prensip, türemiş sınıf nesnelerinin taban sınıf

nesnesi yerine geçmesini öngörür.

• Daha açık bir ifadeyle, taban sınıf türündeki

nesne üzerinde operasyon yapacak şekilde

geliştirilmiş bir fonksiyon, bu sınıftan türeyen

farklı sınıflara ait nesneler üzerinde de aynı

operasyonu yapabilmelidir.

Page 17: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

17

7. Liskov Yerine Geçme Prensibi (LSP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Bu prensip türemiş sınıf türündeki nesnelerin

taban sınıfa ait nesnelere atanması halinde

gerçekleşen otomatik tür dönüşümünden

(upcast) faydalanır.

Page 18: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

18

7. Liskov Yerine Geçme Prensibi (LSP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

Örnek:

• Veritabanından bağımsız bir veri katmanı yazılmak

istenmiştir.

• Bu yapı yeni veri tabanları için yeni sınıf eklenebilirliği

gerekmemesiyle hem Açık-Kapalı prensibine, hem de

DBHelper türünden aldığı parametreden dolay Liskov

prensibiyle uygundur.

Page 19: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

19

7. Liskov Yerine Geçme Prensibi (LSP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

Örnek: DBHelper tasarımı

Page 20: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

20

7. Liskov Yerine Geçme Prensibi (LSP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

Örnek: DBHelper.java

Page 21: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

21

7. Liskov Yerine Geçme Prensibi (LSP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

Örnek: SQLHelper.java

Page 22: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

22

7. Liskov Yerine Geçme Prensibi (LSP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

Örnek: OracleHelper.java

Page 23: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

23

7. Liskov Yerine Geçme Prensibi (LSP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

Örnek: Program.java

Page 24: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

24

7. Liskov Yerine Geçme Prensibi (LSP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

Örnek: Program çıktısı

Page 25: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

25

8. Bağımlılığı Ters Çevirme Prensibi (DIP)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Bağımlılığı Ters Çevirme prensibi (Dependency

Inversion Principle) yüksek seviyeli sınıfların,

aşağı seviyeli sınıflarla doğrudan bir

bağımlılığının olmamasını öngörmektedir.

• Bağımlılığın artmaması için

– yüksek seviyeli sınıflar ile

– düşük seviyeli sınıfların arasına

bir ara yüz ya da soyut sınıf sokulması

gerekmektedir.

Page 26: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

26

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Düşük seviyeli sınıflar, uygulamadaki temel

işlevleri yerine getirirler.

– Örn.: Stok takip uygulamasında kota bilgilerini

alan Finder sınıfı ya da sayfada bu bilgileri

göstermeye yarayan Renderer sınıfı gibi

sınıflardır.

• Öte yandan bu sınıfları kullanarak çalışan Stock

sınıfı ise yüksek seviyeli bir sınıftır. Yüksek

seviyeli sınıflar aşağı seviyeli sınıfları anlamlı

kılarlar.

Page 27: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

27

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının KÖTÜ tasarımı:

Page 28: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

28

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının KÖTÜ tasarımı:

Finder.java

Page 29: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

29

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının KÖTÜ tasarımı:

Renderer.java

Page 30: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

30

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının KÖTÜ tasarımı:

Stock.java

Page 31: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

31

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının KÖTÜ tasarımı:

Page 32: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

32

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının İYİ tasarımı:

Page 33: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

33

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının İYİ tasarımı:

Page 34: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

34

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının İYİ tasarımı:

IFinder.java

Page 35: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

35

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının İYİ tasarımı:

Page 36: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

36

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının İYİ tasarımı:

wsFinder.java

Page 37: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

37

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının İYİ tasarımı:

DBFinder.java

Page 38: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

38

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının İYİ tasarımı:

Page 39: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

39

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının İYİ tasarımı:

IRenderer.java

Page 40: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

40

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının İYİ tasarımı:

Page 41: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

41

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının İYİ tasarımı:

WebRender.java

Page 42: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

42

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının İYİ tasarımı:

ConsoleRender.java

Page 43: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

43

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının İYİ tasarımı:

Page 44: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

44

Bağımlılığı Ters Çevirme Prensibi (DIP) (devam...)

YZM 2118 Yazılım Mimarisi ve Tasarımı

• Stock sınıfının İYİ tasarımı:

Stock.java

Page 45: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

Yararlanılan Kaynaklar

45

• Aykut Taşdelen, C++, Java ve C# ile UML ve Dizayn

Paternleri, Pusula Yayıncılık, İstanbul, 2014

• Eric Freeman, Head First Design Patterns, O'Reilly

Media,2004

• Stephen Stelting & Olav Maassen, Applied Java™

Patterns, Prentice Hall PTR ,2001

• http://www.AlgoritmaveProgramlama.com

YZM 2118 Yazılım Mimarisi ve Tasarımı

Page 46: Yazılım Mimarisi ve Tasarımı...4 5. Yeniden Kullanılabilirlik (Reusability) YZM 2118 Yazılım Mimarisi ve Tasarımı •Yeniden kullanılabilirlik nesne yönelimli programlamanın

46

İYİ ÇALIŞMALAR…

Yrd. Doç. Dr. Volkan TUNALI

[email protected]

YZM 2118 Yazılım Mimarisi ve Tasarımı