«object-oriented» etiketlenmiş sorular

Bir sistemin modüler bir şekilde kontrol edilip manipüle edilebilen bir dizi nesne olarak modellenmesini sağlayan bir metodoloji

17
Neden özel alanlar var, yeterince korunmuyorlar?
privateSınıf alanlarının / özelliklerinin / niteliklerinin görünürlüğü faydalı mı? OOP'da er ya da geç, bir sınıfın alt sınıfını yapacaksınız ve bu durumda, uygulamayı tamamen değiştirebilmeniz ve anlayabilmeniz iyidir. Bir sınıfı alt sınıflarken yaptığım ilk şeylerden biri, bir sürü privateyöntemi değiştirmektir protected. Bununla birlikte, dış dünyadan ayrıntıları gizlemek önemlidir - bu …

23
Değişmez nesneler iyiyse, insanlar neden değişken nesneler oluşturmaya devam ediyor? [kapalı]
Değişmez nesneler¹ iyi, basit ve eşzamanlı programlamada faydalar sağlıyorsa, programcılar neden değişken nesneler oluşturmaya devam ediyor? Java programlama konusunda dört yıllık bir deneyime sahibim ve gördüğüm gibi, insanların bir sınıf oluşturduktan sonra ilk yaptığı şey IDE'de alıcılar ve ayarlayıcılar üretmektir (bu nedenle değiştirilebilir hale getirmektir). Bir farkındalık eksikliği var mı …


2
Paket isimleri tekil mi yoksa çoğul mu olmalı?
Genellikle, kütüphanelerde özellikle paketler, tek bir kavram etrafında düzenlenen sınıfları içerir. Örnekler: xml, sql, user, config, db . Bence hepimiz doğal olarak bu paketlerin tekil olarak doğru olduğunu düşünüyoruz . com.myproject. xml .Element com.myproject. sql .Connection com.myproject. kullanıcı .User com.myproject. kullanıcı. Kullanıcı Fabrika Ancak, gerçekte tek bir tür uygulama koleksiyonu …

15
Özel değişkenlere neden ihtiyacımız var?
Sınıflarda neden özel değişkenlere ihtiyacımız var? Okuduğum her programlama kitabı bunun özel bir değişken olduğunu söylüyor, onu nasıl tanımladığınızı ancak orada durduğunu söylüyor. Bu açıklamaların ifadesi, her zaman bana, mesleğimize olan güven krizimiz gibi geldi. Açıklamalar her zaman diğer programcıların kodumuzu bozmak üzere olduğu gibi geliyordu. Ancak, özel değişkenleri olmayan …

9
Toplama vs Kompozisyon
Kompozisyonun OOP'de ne olduğunu biliyorum, ancak Toplamanın ne olduğu hakkında net bir fikir edemiyorum. Birisi açıklayabilir mi?

16
Getters ve Setters ne zaman haklı
Alıcı ve ayarlayıcılar genellikle uygun OO olmadığından eleştirilir. Öte yandan, gördüğüm çoğu OO kodunun geniş alıcıları ve belirleyicileri var. Alıcılar ve belirleyiciler ne zaman haklı çıkar? Bunları kullanmaktan kaçınmaya çalışıyor musunuz? Genelde aşırı mı kullanılıyor? En sevdiğiniz dil özelliklere sahipse (benimki) bu tür şeyler de bu soru için alıcılar ve …

14
Bu “mirasa karşı iyilik kompozisyonu” kavramı nereden geliyor?
Son birkaç ayda, "mirasa karşı iyilik kompozisyonu" mantığı hiçbir yerden fırlamış ve programlama topluluğu içinde neredeyse bir çeşit meme haline gelmiş gibi görünmektedir. Ve onu her gördüğümde biraz şaşırdım. Birinin dediği gibi "kırıcıların lehine matkaplar". Tecrübelerime göre, kompozisyon ve kalıtım, farklı kullanım durumlarına sahip iki farklı araç ve bunları birbirinin …

8
Kötü programlama uygulamaları yazılım endüstrisinde tipik midir? [kapalı]
İlk işime bir ay önce bir yazılım geliştiricisi olarak başladım. OOP, KATI , KURU , YAGNI, tasarım desenleri, SRP vb. Hakkında öğrendiğim her şey pencereden atılabilir. C # .NET Webforms'u kullanırlar ve neredeyse arkasındaki her şeyi, nesne olarak adlandırılmayan çok az harici sınıfla yaparlar. Özel kontrolleri kullanıyorlar ve yeniden kullanıyorlar. …

17
Dönüş değerinin bulunmadığı fonksiyon / yöntemlerden NULL değeri veya boş değerler döndürmek daha mı iyidir?
Burada bir öneri arıyorum. Dönüş değeri olmadığında veya belirlenemediğinde, bir yöntemden NULL veya boş bir değer döndürmenin daha iyi olup olmadığıyla mücadele ediyorum. Aşağıdaki iki yöntemi örnek olarak alın: string ReverseString(string stringToReverse) // takes a string and reverses it. Person FindPerson(int personID) // finds a Person with a matching personID. …

14
Sizin için bir yöntemin ideal uzunluğu nedir? [kapalı]
Nesneye yönelik programlamada elbette bir yöntemin maksimum uzunluğu konusunda kesin bir kural yoktur, ancak yine de bu iki alıntıyı birbiriyle çelişen buldum, bu yüzden ne düşündüğünüzü duymak istiyorum. Gelen Temizlik Kodu: Çevik Yazılım El Sanatları isimli Elkitabı Robert Martin diyor ki: Fonksiyonların ilk kuralı, küçük olmaları gerektiğidir. Fonksiyonların ikinci kuralı, …

6
“İş mantığı” gerçekten nedir?
PHP ile başladığım 2009'dan beri web geliştirme ile çalışıyorum. ASP.NET'e taşındığımda DDD ve OOAD hakkında çok şey duydum, burada "iş mantığına" ve "iş kurallarına" odaklanıldı. Mesele şu ki, şu ana kadar geliştirdiğim tüm uygulamalar CRUD operasyonları ile ilgiliydi ve bunları pratikte hiç görmedim. Bu şeylerin gerçekte pratikte neler olabileceğini hayal …

12
TDD uygularsam özel yöntemlerden kaçınmalı mıyım?
Sadece şimdi TDD öğreniyorum. Anladığım kadarıyla özel yöntemler denenemez ve endişelenmemeli, çünkü genel API bir nesnenin bütünlüğünü doğrulamak için yeterli bilgi sağlayacak. OOP'yi bir süredir anladım. Özel yöntemlerin nesneleri daha kapsüllenmiş hale getirdiğini, böylece değişime ve hatalara karşı daha dirençli hale getirdiğimi anlıyorum. Bu nedenle, varsayılan olarak kullanılmaları ve yalnızca …

17
Kapsülleme hala OOP'un üzerinde durduğu fillerden biri mi?
Kapsülleme, alanların tümünü veya hemen hemen tamamını özel hale getirmemi ve bunları alıcılar / belirleyiciler tarafından ortaya çıkarmamı söyler. Ancak, Lombok gibi kütüphaneler artık tüm özel alanları kısa bir açıklama ile göstermemize izin veriyor @Data. Tüm özel alanlar için alıcılar, ayarlayıcılar ve ayar yapıcıları yaratacaktır. Biri bana tüm alanları özel …

13
Yapabiliyorsak yerel değişkenleri ortadan kaldırmalı mıyız?
Örneğin, bir işlemciyi Android'de açık tutmak için aşağıdaki gibi kod kullanabilirim: PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "abc"); wakeLock.acquire(); ama bence yerel değişkenler powerManagerve wakeLockelimine edilebilir: ((PowerManager)getSystemService(POWER_SERVICE)) .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakelockTag") .acquire(); benzer sahne iOS uyarı görünümünde görünür, örneğin: UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"my title" message:@"my message" delegate:nil cancelButtonTitle:@"ok" …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.