«object-oriented» etiketlenmiş sorular

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


3
Arayüzlerin somut sınıflara bağlı olması uygun mudur?
Özel hata işleyici için Java'da arayüz oluşturuyorum. Bir argüman hata nesnesi geçmek istiyorum ama Exceptionsınıfın çocuğu olması gerekir . Tanımlı sınıf adımı bir arayüzde kullanmak uygun mudur? Herhangi bir uygulamaya bağımlı olmama açısından daha az bir arayüz oluşturmayacak mı? Böyle bir şey yapmaya çalışıyorum: public class CustomException { /* ... …

1
Python'un birleşmesi, katılmak için öğelere değil, bir tasarım nedeni ile Ruby veya Smalltalk ile karşılaştırıldığında sembole odaklanıyor gibi görünüyor?
OOP'un temel taşlarından birinin, ilgilenmek istediğimiz öğeler olan nesnelerimiz olduğunu ve sonra onlara mesajlar gönderdiğimizi düşündüm. Yani doğal görünebilir, ben bir koleksiyon öğeleri var ve bunu yapmak için onları bir dizeye koymak gerekir: ["x", "o", "o"].join(" | ") # joining a tic-tac-toe row in Ruby (Smalltalk bunu aynı şekilde yapar). …

2
Arayüz Ayrıştırma Prensibi: Arayüzler arasında önemli bir çakışma varsa ne yapmalı?
Gönderen Pearson Yeni Uluslararası Sürüm: Çevik Yazılım Geliştirme, İlkeleri, Desenleri, ve Uygulamaları : Bazen, farklı müşteri grupları tarafından çağrılan yöntemler çakışır. Örtüşme küçükse, gruplar için arayüzler ayrı kalmalıdır. Ortak işlevler, çakışan tüm arabirimlerde bildirilmelidir. Sunucu sınıfı, ortak arabirimleri bu arabirimlerin her birinden devralır, ancak yalnızca bir kez uygular. Bob Amca, …

2
Kodunuzun nasıl düzenleneceğini planlamak için UML diyagramlarını kullanmak neden uygunsuz?
Yani, evet, diyagramlar zaman zaman uygunsuz olabilir. Ne zaman uygunsuzlar? Onları doğrulamak için kod olmadan oluşturduğunuzda ve ardından bunları izlemeyi planladığınızda. Bir fikri keşfetmek için bir diyagram çizmenin yanlış bir yanı yoktur. Çevik Yazılım Geliştirme: İlkeler, Desenler ve Uygulamalar - Robert C. Martin Bununla tam olarak ne demek istiyor? UML …

2
Bir işletmenin iyi bilinen işletme kimliği DDD / OOP'de özel bir türle mi temsil edilmelidir?
Pratik terimlerle class, bir stringya da başka bir ilkel tip üzerinde bir özel (değişmez) kullanmak anlamına gelir . Örnekler: Yayıncılık: Uluslararası Standart Kitap Numarası. Finans: Uluslararası Menkul Kıymet Kimlik Numarası. Avantajları: Bir tanımlayıcının biçimini sağlayabilir. Modelin birinci sınıf üyesi olur. Dezavantajları: Kalıcılık sürtünmesi ekler (örn. Varlık Çerçevesi). Daha fazla kod.

4
Bir hiyerarşiyi zorlamadan birbirleriyle etkileşimde bulunan ve iletişim kuran nesneleri nasıl alabilirim?
Umarım bu haydutlar sorumu açıklığa kavuşturacaklardır - yine de alışkanlık olup olmadıklarını tamamen anlarım, bu yüzden durumun bu olup olmadığını bana bildirin ve kendimi daha net hale getirmeye çalışacağım. Nesne yönelimli oyun geliştirme ile tanışmak için yaptığım çok basit bir oyun olan BoxPong ile tanışın . Topu kontrol etmek ve …

5
Java'da “bir arayüze programlamak” her zaman mantıklı mıdır?
Bir arayüzden uygulayan bir sınıfın nasıl örnekleneceği ile ilgili bu sorudaki tartışmayı gördüm . Benim durumumda, Java'da bir örneği kullanan çok küçük bir program yazıyorum TreeMapve orada herkesin görüşüne göre, şu şekilde somutlaştırılmalıdır: Map<X> map = new TreeMap<X>(); Programımda, arabirimde (ve arabirimde de bulunan birkaç başka) map.pollFirstEntry()bildirilmeyen işlevi çağırıyorum . …

4
Ziyaretçi Deseni bu senaryoda geçerli mi?
Görevimin amacı, zamanlanan yinelenen görevleri çalıştırabilecek küçük bir sistem tasarlamaktır. Yinelenen bir görev, "Pazartesi-Cuma günleri 08: 00-17: 00 saatleri arasında yöneticiye her saat e-posta gönder" gibi bir şeydir. RecurringTask adında bir temel sınıf var . public abstract class RecurringTask{ // I've already figured out this part public bool isOccuring(DateTime dateTime){ …

8
Nesne yönelimi ve algoritmalar arasındaki ilişki
Bazı algoritmalar ders kitaplarını okurken, bazı problemler (sıralama, en kısa yol) veya bazı genel yöntemler (özyinelemeli algoritmalar, böl ve fethet, dinamik programlama ...) için akıllı prosedürlerle doludur. Orada nesne yönelimli programlamanın birkaç izini buldum; (Neden daha prosedür odaklılar?). Sonra düşünüyordum: Algoritmalar ve OOP arasındaki ilişki nedir? İki bağımsız konu mu? …

5
OOP dilinde sınıf ve tür
Programlama dili teorisinde, bir tür bir değerler kümesidir. Örneğin, "int" türü tüm tamsayı değerlerin kümesidir. OOP dillerinde, sınıf bir türdür, değil mi? Bir sınıf birden fazla üyeyle tanımlandığında, ör. class myclass{ int a; double b; } Bir sınıf hakkında konuştuğumuzda, " bir int ve bir çift (a,b)nerede " veyaab "{ …

4
Bir sınıf yöntemi, kendisini değiştirdikten sonra aynı örneği ne zaman döndürmelidir?
Ben üç yöntem vardır bir sınıf var A(), B()ve C(). Bu yöntemler kendi örneğini değiştirir. Örnek ayrı bir kopya olduğunda (örneğin) bir örnek döndürmek zorunda olsa da, yöntemde aynı örneği değiştirirken ve başka bir değer Clone()döndürmüyorken, döndürmek için ücretsiz bir seçim voidveya aynı örneği ( return this;) var. Aynı değiştirilmiş …

6
Önemli miktarda zaman, statik bir sınıf yerine bir nesneye sahip olmak için bir neden düşünemiyorum. Nesnelerin düşündüğümden daha fazla faydası var mı? [kapalı]
Kapalı . Bu sorunun daha fazla odaklanması gerekiyor . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Soruyu, yalnızca bu yayını düzenleyerek tek bir soruna odaklanacak şekilde güncelleyin . 5 yıl önce kapalı . Bir nesne kavramını anlıyorum ve bir Java programcısı olarak OO paradigmasının pratikte bana oldukça …


4
.NET Programlama ve POCO sınıfları
Bu gece değiştirmem gereken bazı uygulamalar üzerinde düşünürken bir düşünmeye başladım ve beni düşündürdü. Varlık Çerçevesi Varlıklar POCO'dur (Düz eski CLR Nesneleri) ve ASP.NET MVC'de kullanılan modeller de genellikle POCO'dur. Bu temelde sadece özellikler anlamına gelir, yöntem yok. Şimdi OO programlama normal olarak bir nesnenin özelliklerini ve yöntemlerini içeren işlevselliğini …

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.