paternler (İlk beş)

31
Paternler (İlk Beş) • Yaratıcı • Bilgi Uzmanı • Az Bağımlılık • Denetçi • İyi Uyum 1

Upload: charissa-britt

Post on 03-Jan-2016

45 views

Category:

Documents


2 download

DESCRIPTION

Paternler (İlk Beş). Yaratıcı Bilgi Uzmanı Az Bağımlılık Denetçi İyi Uyum. Yaratıcı. Problem: Herhangi bir sınıftan yeni bir nesne yaratma sorumluluğu kime ait olmalıdır ? - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Paternler (İlk Beş)

Paternler (İlk Beş)

• Yaratıcı• Bilgi Uzmanı• Az Bağımlılık• Denetçi• İyi Uyum

1

Page 2: Paternler (İlk Beş)

Yaratıcı

• Problem: Herhangi bir sınıftan yeni bir nesne yaratma sorumluluğu kime ait olmalıdır ?

• Nesne tabanlı bir sistemde en genel faaliyetlerden bir tanesi nesnelerin yaratılması faaliyetidir. Dolayısıyla nesne yaratma sorumluluğunun atanması konusunda genel bir prensibe sahip olunması yararlı olacaktır. Bu sorumluluğun iyi belirlenmesi, tasarımda az bağımlılığın artması, yeniden kullanılabilirlik seviyesinin yükselmesi ve sarmalamanın desteklenmesi anlamına gelmektedir.

2

Page 3: Paternler (İlk Beş)

Çözüm

• Aşağıdakilerden biri veya birkaçının doğru olması durumunda A sınıfından bir nesne yaratma sorumluluğunu B sınıfına verebiliriz:

– B, A nesnelerini birleştirir.– B, A nesnelerini içerir.– B, A nesnelerini kaydeder.– B, A nesnelerini çok yakın kullanır.– B, A nesnesi yaratılırken gerekli olan verilere – B, A nesnelerinin yaratıcısıdır.

3

Page 4: Paternler (İlk Beş)

Tartışma

• Yaratıcı genel olarak nesenelerin yaratılması ile ilgili sorumlulukların atanması işlerini yürütür. Yaratıcı paterninin düşünülmesindeki asıl amaç, herhangi bir durumda yaratılması gereken nesne ile onu yaratacak olan arasında bağlantı kurulmasıdır. – Birleştirici parçaları birleştirir– Kapsayıcı içerikleri içerir– Kaydedici kaydeder.

• Bazen yaratıcı, yaratma sırasında gerekli olan bilgileri içeren sınıf aranarak da kolaylıkla bulunabilir.

4

Page 5: Paternler (İlk Beş)

Uyarılar

• Bazen yaratma işi bazı karmaşık durumları içerebilir. – Performans gerekçesiyle geri dönüşüm nesnelerinin

kullanılması, – Harici özellik değerlerine bağlı şartlı olarak benzer sınıfların

oluşturduğu bir aileden bir nesnenin yaratılması

• Bu tür nesneler için diğer patern prensipleri tercih edilebilir.

5

Page 6: Paternler (İlk Beş)

Monopol Örneği

• Larman’ın Monopol Oyunu örneğinde oyun tahtası karelerden oluştuğu için Tahta yazılım nesnesi Kare yazılım nesnelerinden sorumlu durumdadır. Tahta Karelerin mantıksal mekanıdır.

6

Page 7: Paternler (İlk Beş)

Bilgi Uzmanı

• Bilgi uzmanını belirlemek için genel toplamı belirlemek adına gerekli olan bilgileri içeren nesneleri arayabiliriz.

• Problem : Nesnelere sorumluluk atanması sırasında dikkat edilen genel prensip nedir?

• Çözüm: Sorumluluğu yerine getirecek bilgiye sahip olan sınıfa, yani bilgi uzmanına bir sorumluluk ata.

7

Page 8: Paternler (İlk Beş)

Tartışma • Bilgi Uzmanı, nesne tasarımında sürekli olarak kullanılan

temel rehber prensiptir. • Uzman, anlaşılması güç veya fantazili bir fikir anlamında

değil; nesnelerin sahip oldukları bilgilerle yaptıkları şeylerin genel sezgisini ifade etmektedir.

• Bir sorumluluğun yerine getirilmesi genelde farklı sınıflardan türetilen nesnelere dağılmış bilgilerin bir araya getilmesini gerekitirir.

• Eğer bilgi farklı nesneler arasında dağılmış ise işi paylaşmak için mesajlar aracılığıyla etkileşimde bulunurlar.

8

Page 9: Paternler (İlk Beş)

Uyarılar

• Bazen bağımlılık ve uyum problemleri dolayısıyla uzmanın tavsiye ettiği çözümler arzu edilmeyebilir.

• Farklı sistem bileşenlerini aynı komponent üzerine koyarak karıştırmak yerine örneğin uygulama mantığını bir yere veritabanını daha uzak bir yere koyun.

9

Page 10: Paternler (İlk Beş)

Yararları

• Bilgi sarmalaması nesnelerin kendi görevlerini yerine getirmeleri açısından gereklidir. Bu durum daha bağımsız ve idame edilebilir sistemler için bir şart olan az bağımlılığı desteklemektedir.

• Gerekli bilgiye sahip sınıflar üzeride dağılmış davranışlar iyi uyum içinde bulunan ve kolay anlaşılır sınıf tanımlarını desteklemektedir.

• İyi uyum genellikle desteklenmektedir.

10

Page 11: Paternler (İlk Beş)

Monopol Örneği

• Eğer tahta üzerindeki kareler hakkında bilgi almak istiyorsanız ona nasıl ulaşılabileceğini bilen yazılım nesnesine bu sorumluluğu atamalısınız. Bu durumda Tahta yazılım nesnesi iyi bir seçim olacaktır. Çünkü Kare nesnesinin yaratıcısı yine Tahta nesnesidir. Fakat burada bilginin kare nesnesinden çekildiği unutulmamalıdır.

11

Page 12: Paternler (İlk Beş)

Az Bağımlılık

• Bağımlılık bir elemanın bir diğer elemanla ne ölçüde bağlantılı olduğu, ona ne kadar güvendiği ve onun hakkında ne kadar bilgiye sahip olduğunun göstergesidir.

12

Page 13: Paternler (İlk Beş)

• Problem: • Az bağımlılık, değişimlerden az etkilenme ve

yeniden kullanılabilirlik nasıl desteklenir?

• Çözüm: • Öyle bir sorumluluk ata ki bağımlılık düşük

seviyede kalsın.

13

Az Bağımlılık PaterniAz Bağımlılık Paterni

Page 14: Paternler (İlk Beş)

Tartışma

• Az bağımlılık bütün tasarım kararlarında akılda tutulması gereken bir prensiptir. Muhakkak suretle gözönünde bulundurulması gereken önemli bir hedeftir. Bir tasarımcının tasarımı değerlendirirken kullandığı önemli bir değerlendirme kriteridir.

14

Page 15: Paternler (İlk Beş)

Uyarılar & Yararlar

• (Yaygın ve durağan elemanlara çok bağımlılık az rastlanan bir problemdir.)

• Yararlar:• Nesneler diğer bileşenlerde yapılan

değişikliklerden etkilenmezler. • Nesnelerin izolasyon açısından anlaşılması

basittir.• Nesneler yeniden kullanım için uygundur.

15

Page 16: Paternler (İlk Beş)

Monopol Örneği

• Eğer biz kare nesnesi hakkında bilgi almak için Tahta nesnesi yerine gelişigüzel bir sınıf oluştursaydık bu sınıf hem Tahta nesnesinden hem de Kare nesnesinden bilgi almak zorumda kalacaktı. Bu da haliyle bağlantı sayısını artıracak yani bağımlılığı artıracaktı.

16

Page 17: Paternler (İlk Beş)

Paternler Arasındaki Bağlantılar

• Daha önce Bilgi Uzmanının Az Bağımlılığı desteklediğini söylemiştik. Aslında bu durum paternlerin yılların getirdiği tecrübeler sonucunda oluşturulmuş olmasının doğal bir sonucudur. Genelde farklı fikirlerden yola çıksanız bile aynı sonuca varırsınız; çünkü fikirler (paternler) birbirlerini desteklemektedir.

17

Page 18: Paternler (İlk Beş)

Denetçi

• Denetçi sistem olaylarının alınmasından ve gerçekleştirilmesinden sorumlu olan bir arayüz nesnedir. Sistem faaliyetlerinin gerçekleştirilmesi için gerekli yöntemleri belirlemektedir.

18

Page 19: Paternler (İlk Beş)

Problem :

• Bir sistem giriş olayının yönetilmesinden kim sorumlu olacaktır?

• Model-View-Controller mimari paterninin varlığı düşünülmektedir. Bu mimari kullanıcı arayüzleri (Views) ile diğer sistem fonksiyonelitesini ve bu fonksiyoneliteye erişimi kortrol eden yapıyı (Models) birbirlerinden ayırmaktadır.

19

Page 20: Paternler (İlk Beş)

Çözüm

• Sistem olaylarının alınması ve yönetilmesi sorumluğunu aşağıdakilerden birini temsil eden sınıfa veriniz:– Tüm sistemi, araçları veya altsistemi temsil

eder– Sistem olaylarının meydana geldiği

kulllanım senaryolarını temsil eder.

20

Page 21: Paternler (İlk Beş)

Tartışma

• Denetçi paterni genel kabul görmüş uygun seçimler için bir rehber hizmeti sunmaktadır.

• Bir kullanım durumu için meydana gelen bütün sistem olayları için tek bir denetçinin kullanılması arzu edilen bir durumdur. Böylelikle denetçideki kullanım durumu bilgisinin idame edilmesi mümkün olacaktır.

21

Page 22: Paternler (İlk Beş)

Monopol Örneği

• İlk sistem mesajı “Oyun Oyna” mesajıdır. Bu mesajı hangi nesne almalıdır.?

• Eğer sınırlı sayıda sistem faaliyeti varsa MonopolyGame nesnesi bu iş için uygun olabilir. Aksi durumda çok fazla faaliyet olacaksa İyi Uyum paternini göz önünüde bulundurmalıyız.

22

Page 23: Paternler (İlk Beş)

İyi Uyum

• Uyum bir elemanın sorumluluklarının ne derecede odaklanılmış ve birbirleriyle güçlü ilişkilendirildiğinin ölçüsüdür.

• İyi Uyum: Eğer bir eleman birbirleriyle iyi ilişkilendirilmiş sorumluluklara sahipse ve çok büyük miktarlarda iş yükü yoksa bu eleman iyi uyuma sahiptir denilir.

23

Page 24: Paternler (İlk Beş)

İyi Uyum Paterni

• Problem:• Karmaşıklık nasıl yönetilebilir bir seviyede

tutulabilir?• Çözüm:• Sorumluluğu iyi belirle böylece uyum iyi olsun.

24

Page 25: Paternler (İlk Beş)

Tartışma

• Az Bağımlılık gibi İyi Uyum da tasarım kararları alınırken dikkat edilmesi gereken bir konudur; sürekli altı çizilmesi gereken bir hedeftir.

25

Page 26: Paternler (İlk Beş)

Monopol Örneği

• Daha önceki slaytlardan :MonopolyGame sınıfının denetçi olduğunu biliyoruz:

• Eğer :MonopolyGame sınıfı yazılım nesneleri içinde oyunla ilgili fonksiyonların çoğunu yerine getiriyorsa az bağımlılık var denilir.

• Eğer bu fonksiyonlar diğer yazılım nesnelerine bırakılmışsa iyi uyumdan bahsedilebilir.

26

Page 27: Paternler (İlk Beş)

Patern İlişkileri

• Az bağımlılık ve İyi Uyum paternleri doğal olarak birbirlerini tetiklemektedir.

• Her ikisi nesne tabanlı sistemlerde büyük boyuttaki problemleri küçük yönetilebilir parçalar haline getirmektedirler.

• Eğer parçalar çok basit ise onlardan çok oluduğu anlamına gelmektedir.

• Eğer parçalar çok karmaşık ise hiçbiri anlaşılabilir olmayacaktır.

27

Page 28: Paternler (İlk Beş)

Uyum Örnekleri

• Çok Az Uyum – Bir sınıf tek başına birçok fonksiyonel alandan sorumludur.

• Az Uyum – Bir sınıf bir fonksiyonel alana ait karmaşık bir görevden tek başına sorumludur.

28

Page 29: Paternler (İlk Beş)

• Orta Seviye Uyum – Bir sınıf biribirleriyle değil ama sınıf konsepti bazında matıksal dolaylı ilişkiye sahip birkaç alandan tek başına düşük seviyede sorumludur.

• İyi Uyum – Bir sınıf bir fonksiyonel alanla ilgili orta seviyede sorumluluğa sahiptir ve görevini tamamlamak için diğerleriyle ortaklaşa çalışmaktadır.

29

Page 30: Paternler (İlk Beş)

Yararları

• Sadelik ve tasarımın anlaşılırlığı artar• Bakım ve iyileştirme kolaylaşır• Az bağımlılık desteklenir.

30

Page 31: Paternler (İlk Beş)

Özet

• Sorumlulukların akıllıca atanması nesne tasarımında oldukça önemli bir konudur. Sorumlulukların atanması işlemi genellikle etkileşim diyagramlarının çizilmesi sırasında ve programlama safhasında tanımlanmaktadır.

• Paternler sorumlulukların atanması sırasında güzel tavsiyeler sunan problem/çözüm çiftleridir.

31