24 Ağustos 2020 Pazartesi

Abstract Occurrence

Abstraction kısmında soyut bir sınıf olarak düşünüyoruz, occurence kısmında ise bu sınıfın somut halini oluşturuyoruz. Yani abstract kısmında bir kavram var ve occurence kısmında bu kavrama kişilik kazandırmış oluyoruz.

Dizi - Bölüm örneği üzerinden gidersek, dizi dediğimiz zaman bir sürü bölüm içeren, belli bir konu bütünlüğüne sahip bir yapıdan bahsederiz. Adı, yayın tarihi, konusu vs bilgiler içerebilir. Bölüm ise bu yapının parçalarıdır. Bir dizi bölümlerden oluşur, herhangi bir bölümü olmazsa o dizi olmaz. Yani dizinin asıl işlev gösteren, kullanılabilir olan kısmı bölümleridir. Dizi izleyeceğim denildiği zaman aslında dizinin bir bölümü kastedilir.

Bu yapı aynı bilginin defalarca oluşturularak hafızada gereksiz yer kaplamasının önüne geçilir. Yani dizinin bölümünün hem dizi bilgilerini hem bölüm bilgilerini tutması yerine, dizi bilgisi bir kere tanımlanır ve bölümler artık bu dizinin içinde tutulur. Dizi izlemeye karar verdiğimiz zaman Breaking Bad 1. sezon 1. bölüm'ü şeklinde bir arama yaparız. Yani izlemek istediğimiz diziyi Breaking Bad olarak aratırız ardından ilk bölümünü seçeriz.

Aynı şekilde Kitap - KütüphaneKaydı örneği üzerinden gidersek, kütüphanede aynı kitaptan birden fazla bulunabilir. Bu durumda kitabın bilgileri bellidir, aynı 2 kitap arasındaki tek fark barkod numarası olacaktır. Aynı kitaptan 100 tane olursa ve her biri için ayrı ayrı bütün bilgiler tutulursa çok gereksiz bir yer harcanmış olur. Bunun yerine aynı olan kitabın bilgisi ayrı bir kitap sınıfının nesnesi olarak tutulur, KütüphaneKaydında ise bu kitabın barkod numarası tutulur. Kitap nesnesine bu barkodlar aktarılarak ilgili kitaplara kişilik kazandırılır. Bu durum şöyle açıklanabilir: Kütüphaneye introduction to algorithms kitabı almaya giderken ismi, yazarı belli bir kitabı almak için gidilir. Eğer kütüphanede bu kitabı gördüğümüz ve aldığımız zaman o kitap artık sadece introduction to algorithms değil belli bir barkod numarasına sahip kayıtlı bir kitap olur. Bu durumu açıklamak için örnek bir kod parçası aşağıdadır. Örnek olması açısından detaylandırılmamıştır, kayıtlar kısmını hashmap ile tutarak erişimi kolaylaştırmak gibi işlemlerle faydalı bir kullanım sağlanabilir.


0 yorum:

Yorum Gönderme