Object Oriented Programming mantığı

nc.abidin

Hectopat
Katılım
8 Şubat 2021
Mesajlar
363
Çözümler
3
Daha fazla  
Cinsiyet
Erkek
Merhaba arkadaşlar, son 1,5 aydır JAVA çalışmaktayım ve son 1 haftadır tıkandığımı hissediyorum. Bu konuda fikirlerinize ihtiyacım var.

Sorun: Class yapılarını, bu yapılarda kullanılan miras alma-kapsülleme gibi olayları öğrendim ve syntax üzerinde neyi nasıl yazacağımı biliyorum ama verilen problemi sınıflayıp nesneleştiremiyorum.

Örnek: Az önce basit bir bankacılık sistemi üzerinde uğraşıyordum. İstenen, banka sınıfı, şube sınıfı, ve müşteri sınıfı. Bu sınıfların içerisinde arrayListler olsun ve istenildiği kadar müşteri eklensin, müşteri işlem yapabilsin, müşterilerin teker teker bilgilerine ulaşılabilinsin, müşteriler listelenebilinsin gibi olaylar.

Şimdi ben bu örneğin cevap kodunu okuduğumda çok rahat anlıyorum, kodu okuyup anlamamda sıkıntı yok. Method yazarken de sıkıntı yaşamıyorum, sonuçta basit şeyler isteniyor ama bu sınıfları kendi başıma kafamda bir mantığa oturtup, sınıfların nesnelerini birbirleri ile etkileşime sokmakta sorun yaşıyorum.

Ben bu sorunun nasıl üstesinden gelebilirim?

Kodlamaya başlamadan önce bir kağıt üzerinde sınıfları, nesneleri vs bir şablona döksem nasıl olur?
Kodlamaya başlarken ilk nereden başlamam gerek? Subclass -> Superclass şeklinde mi gitmeliyim?
 
Son düzenleyen: Moderatör:
Yazdigin sey aslinda "Ingilizce anlayabiliyorum ama konusamiyorum" problemi ile semantik olarak ayni.
Cozum de ayni -> Pratik yapman.

OO paradigmasiyla kurgulayabildigin en basit yapidan baslayip kademe kademe zorlastir problemi. Zamanla cok ilerledigini goreceksin.

Ayrica dizayn pattern calis. Ezberleme, neden ihtiyac duyuldugunu, nasil kurgulandigini ve hangi varyasyonlari oldugunu ogren.

Ne zaman interface yapacaksin, ne zaman polymorphism kullanacaksin, God object yaratiyor musun, nasil decoupled class'lar yazarsin bunlarin hepsi kendini gelistirdikce ve sen yazdikca oturur.

Bir projeyi OO yaklasimi ile gelistirirsin, 2 sene sonra yasadigin sorunlara bakarak yanlislarini gorursun. Biraz piyasa tecrubesi de gerekiyor. Neyin degisip neyin statik kalacagini kod yazmadan bilebilseydik cok isabetli yapilar gelistirebilirdik.
 
Ayrica dizayn pattern calis. Ezberleme, neden ihtiyac duyuldugunu, nasil kurgulandigini ve hangi varyasyonlari oldugunu ogren.

Web alanında çalışmayı planlıyorum ve işin mimari yapısı ilgimi çekiyor. Bu nedenle kendimi backend üzerine geliştirmeyi düşünüyorum. Alan üzerine araştırma yaparken dizayn pattern'ler ile de karşılaşmıştım ama çok fazla pattern olduğu ve hepsine bir anda odaklanmak yerine önemli olanlara odaklanıp, kalanının zaman içerisinde sindirilmesi gerektiği söylenmişti.

Bu konuda senin görüşün nedir?

Ek olarak, hangi alanda çalıştığını bilmiyorum ama genel olarak verebileceğin önemli tavsiyeler var mı?
 
Web alanında çalışmayı planlıyorum ve işin mimari yapısı ilgimi çekiyor. Bu nedenle kendimi backend üzerine geliştirmeyi düşünüyorum. Alan üzerine araştırma yaparken dizayn pattern'ler ile de karşılaşmıştım ama çok fazla pattern olduğu ve hepsine bir anda odaklanmak yerine önemli olanlara odaklanıp, kalanının zaman içerisinde sindirilmesi gerektiği söylenmişti.

Bu konuda senin görüşün nedir?

Ek olarak, hangi alanda çalıştığını bilmiyorum ama genel olarak verebileceğin önemli tavsiyeler var mı?
Genel pattern bilgisine sahip olursan karsilastigin problemin kendisinin ya da benzerinin cozumlerini sunan bir pattern oldugunu da ogrenmis olursun.

Zaten patternlerin ana kirilimlari var, hepsinin tek tek ogrenmek zaten mumkun degil, sadece varliklarindan haberdar olmak yeterli ilk basta.

Genel verebilecegim tavsiye OO ogrenmenin yanisira neden boyle bir paradigma oldugunu, ne alternatifleri oldugunu ve amacini da ogrenmek. Yani biraz meseleye uzaktan bakmak.
 
Genel pattern bilgisine sahip olursan karsilastigin problemin kendisinin ya da benzerinin cozumlerini sunan bir pattern oldugunu da ogrenmis olursun.

Zaten patternlerin ana kirilimlari var, hepsinin tek tek ogrenmek zaten mumkun degil, sadece varliklarindan haberdar olmak yeterli ilk basta.

Genel verebilecegim tavsiye OO ogrenmenin yanisira neden boyle bir paradigma oldugunu, ne alternatifleri oldugunu ve amacini da ogrenmek. Yani biraz meseleye uzaktan bakmak.
Anladım, ilgi gösterdiğin için çok teşekkür ederim.
 

Geri
Yukarı