«object-oriented» etiketlenmiş sorular

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

1
Statik yöntemleri kötüye kullanıyor muyuz?
Birkaç ay önce yeni bir projede çalışmaya başladım ve koddan geçerken bana kullanılan statik yöntemlerin miktarını okudum. Sadece yararlı yöntemler olarak değil collectionToCsvString(Collection<E> elements), aynı zamanda birçok iş mantığı da saklanır. Bunun arkasındaki mantıktan sorumlu adama sorduğumda, bunun Bahar'ın zulmünden kaçmanın bir yolu olduğunu söyledi . Bu düşünme sürecinin etrafında …

2
OOP “nesneleri” ve “sınıfları” hafızada montaj dili açısından nasıl düzenlenir?
Bellekte nesneler nasıl düzenlenir? Örneğin, bir fonksiyonun bellekte bir kod parçası olduğunu biliyorum, bu parametreler yığını ve / veya kayıtları ve kendi yığın çerçevesini işleyen bekler. Ancak nesneler çok daha karmaşık bir yapıdır. Nasıl organize olmuşlar? Her nesnenin yöntemlere "bağlantıları" var mı ve adresi kendisine bu yönteme iletiyor mu? Bu …

3
Neden “benliğe” ihtiyacınız var. Python örnek değişkenleri başvurmak için?
Java, Ruby, Haskell ve Python gibi birçok dile program yapıyorum. Üzerinde çalıştığım farklı projeler nedeniyle günde birçok dil arasında geçiş yapmam gerekiyor. Şimdi, sorun genellikle selfPython işlev tanımlarında aynı parametre üzerinde aynı yöntem çağırma yöntemleri ile ilk parametre olarak yazmayı unutma . Bununla birlikte, Python'un bu yaklaşımına oldukça şaşırdım. Temel …

3
Kalıtım üzerine kompozisyon ama
Kendime yazılım mühendisliğini öğretmeye çalışıyorum ve beni şaşırtan bazı çelişkili bilgilere karşı geliyorum. OOP ve soyut sınıfların / arayüzlerin ne olduğunu ve nasıl kullanıldığını öğreniyorum, ama sonra 'kompozisyonu kalıtımdan yana tutması' gerektiğini okuyorum. Kompozisyon, bir sınıfın bu yeni nesnenin işlevselliğini kullanmak / etkileşimde bulunmak için başka bir sınıfın nesnesini oluşturması …

8
Zaman uyumsuz işlevleri gösteren bir arabirim sızdıran bir soyutlama mı?
Bağımlılık Enjeksiyon Prensipleri, Uygulamaları ve Desenler kitabını okuyorum ve kitapta iyi tarif edilen sızdıran soyutlama kavramını okudum. Bu gün bağımlılık enjeksiyon kullanarak bir C # kod tabanı refactoring böylece engelleme yerine async çağrıları kullanılır. Bunu yaparken kod tabanımdaki soyutlamaları temsil eden ve zaman uyumsuz çağrıların kullanılabilmesi için yeniden tasarlanması gereken …

2
DDD'de, bir Etki Alanı Hizmeti temelde yalnızca bir Cephe ve / veya Arabulucu Kalıbı mıdır?
Etki Alanına Dayalı Tasarım'da Etki Alanı Katmanı'nın birden fazla (geleneksel) hizmeti olabilir. Örneğin, Kullanıcı etki alanı için şunlara sahip olabiliriz: Kullanıcı nesnelerini farklı şekillerde oluşturan bir UserFactory Altyapı Katmanındaki Kalıcılık Hizmetleri ile etkileşime girmekten sorumlu bir UserRepository Etki Alanı Katmanı'ndaki bir UserService, yalnızca bu iki hizmet ve Altyapı Katmanı için …

5
İşlev çağrıları performansı ne kadar etkiler?
Özellikle OOP'de kod modülerliği, okunabilirliği ve birlikte çalışabilirliği için işlevselliği yöntemlere veya işlevlere çıkarmak şarttır. Ancak bu, daha fazla işlev çağrısı yapılacağı anlamına gelir. Kodumuzu yöntemlere veya işlevlere bölmek modern * dillerdeki performansı nasıl etkiler ? * En popüler olanlar: C, Java, C ++, C #, Python, JavaScript, Ruby ...

1
C ++ özel üye işlevleri kapsüllemek için arkadaş sınıfları kullanma - iyi uygulama veya kötüye?
Bu yüzden, böyle bir şey yaparak başlıklara özel işlevler koymaktan kaçınmanın mümkün olduğunu fark ettim: // In file pred_list.h: class PredicateList { int somePrivateField; friend class PredicateList_HelperFunctions; public: bool match(); } // In file pred_list.cpp: class PredicateList_HelperFunctions { static bool fullMatch(PredicateList& p) { return p.somePrivateField == 5; // or whatever …

6
DDD OOP ile tanıştı: Nesneye yönelik bir depo nasıl uygulanır?
Bir DDD deposunun tipik bir uygulaması çok OO'ya benzemez, örneğin bir save()yöntem: package com.example.domain; public class Product { /* public attributes for brevity */ public String name; public Double price; } public interface ProductRepo { void save(Product product); } Altyapı bölümü: package com.example.infrastructure; // imports... public class JdbcProductRepo implements ProductRepo …

4
saçma sapan varsayılan değeri olan yapı
Benim sistemde sık sık havaalanı kodları (çalışabilir "YYZ", "LAX", "SFO"vs.), bunlar (büyük harf olarak temsil 3 harfi) aynı formatta her zaman vardır. Sistem tipik olarak API talebi başına bu (farklı) kodların 25-50'sini ele alır, toplamda binden fazla tahsis ile, bunlar uygulamamızın birçok katmanından geçirilir ve eşitlik açısından sık sık karşılaştırılır. …




7
kaydedicinin parametre listesindeki konumu ne olmalıdır [kapalı]
Kapalı . Bu soru görüş temelli . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Bu yayını düzenleyerek gerçekler ve alıntılarla yanıtlanabilmesi için soruyu güncelleyin . 5 yıl önce kapalı . Kodumda, yapıcılarının parametre listesi aracılığıyla sınıflarımın çoğuna bir logger enjekte ediyorum Rastgele koyduğumu fark ettim: bazen listede …

6
Downcasting nasıl önlenir?
Sorum süper sınıf Animal'in özel bir vakası hakkında. Benim Animalcan moveForward()ve eat(). Sealuzanır Animal. Doguzanır Animal. Ve Animaladı da verilen özel bir yaratık var Human. Humanayrıca bir yöntem speak()uygular (tarafından uygulanmadı Animal). AnimalKabul eden soyut bir yöntemin uygulanmasında yöntemi kullanmak istiyorum speak(). Mahzun olmadan bu mümkün görünmüyor. Jeremy Miller makalesinde …

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.