«object-oriented» etiketlenmiş sorular

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

7
Sınıflarla OOP'a kıyasla fonksiyonel programlama
Son zamanlarda bazı fonksiyonel programlama kavramlarıyla ilgileniyorum. OOP'u bir süredir kullandım. OOP'ta oldukça karmaşık bir uygulamayı nasıl oluşturacağımı görebiliyorum. Her nesne, o nesnenin nasıl yapılacağını bilirdi. Ya da ebeveyn sınıfının yaptığı gibi. Böylece Person().speak()insanı konuşturmasını söyleyebilirim . Fakat işlevsel programlamada benzer şeyleri nasıl yaparım? İşlevlerin birinci sınıf öğeler olduğunu görüyorum. …

6
Başka bir soruna daha kolay bir çözüm getirirse, kod kokusu duymanız sorun olur mu? [kapalı]
Bir grup arkadaş ve ben kısa süredir bir proje üzerinde çalışıyoruz ve ürünümüze özgü bir senaryoyu temsil etmek için güzel bir OOP yöntemi icat etmek istedik. Temel olarak, Touhou tarzı bir mermi cehennemi oyunu üzerinde çalışıyoruz ve hayal edebileceğimiz herhangi bir mermi davranışını kolayca temsil edebileceğimiz bir sistem kurmak istedik. …

18
Müşteriniz nesne yönelimli programlama kullanmamanızı isterse ne yaparsınız?
Karıncaların çalışmalarını bir ızgarada simüle etmek için bir program yazıyorum (PDF). Karınca dolaşabilir, bir şeyler toplayabilir ve bir şeyleri bırakabilir. Sorun şu ki, karıncaların hareketleri ve her karıncaların pozisyonları sınıf özellikleriyle kolayca izlenebilir (ve bu karıncaların pek çok örneğini kolayca yaratabiliriz) müşterim, işlevsel programlamada bir geçmişe sahip olduğundan, Fonksiyonel programlama …

14
Nesneler neden referans olarak geçiyor?
OO üzerinde çalışan genç bir meslektaş, neden ilkel türlerin ya da yapıların zıddı olan her nesnenin referans olarak geçtiğini sordu. Java ve C # gibi dillerin ortak bir özelliğidir. Onun için iyi bir cevap bulamadım. Bu tasarım kararının motivasyonları nelerdir? Bu dillerin geliştiricileri, her seferinde işaretçiler ve typedefs oluşturmak zorunda …

10
Genellikle nesneleri veya üye değişkenlerini işlevlere gönderiyor musunuz?
Bu iki vaka arasında genel olarak kabul edilen uygulama hangisidir: function insertIntoDatabase(Account account, Otherthing thing) { database.insertMethod(account.getId(), thing.getId(), thing.getSomeValue()); } veya function insertIntoDatabase(long accountId, long thingId, double someValue) { database.insertMethod(accountId, thingId, someValue); } Başka bir deyişle, nesnelerin tamamını etrafa veya sadece ihtiyacınız olan alanlara aktarmak genellikle daha iyi olur mu?

5
Aşırı somut yöntemler kod kokusu mu?
Somut yöntemlerin geçersiz kılınmasının bir kod kokusu olduğu doğru mu? Çünkü somut yöntemleri geçersiz kılmanız gerekiyorsa bence: public class A{ public void a(){ } } public class B extends A{ @Override public void a(){ } } olarak yeniden yazılabilir public interface A{ public void a(); } public class ConcreteA implements …

7
Bir bayrak daha sonra kullanmak için bir döngü içinde bir bayrak ayarlamak için bir kod kokusu mu?
Bir haritayı belirli bir koşul doğru oluncaya kadar tekrar eden ve daha sonra başka şeyler yapmak için bu koşulu kullandığımda bir kod parçam var. Örnek: Map<BigInteger, List<String>> map = handler.getMap(); if(map != null && !map.isEmpty()) { for (Map.Entry<BigInteger, List<String>> entry : map.entrySet()) { fillUpList(); if(list.size() > limit) { limitFlag = …

10
Bir at sürüsü göz önüne alındığında, tek boynuzlu atların ortalama boynuz uzunluğunu nasıl bulabilirim?
Yukarıdaki soru, eski kodda karşılaştığım ortak bir problemin veya bu problemi çözmek için önceki girişimlerden kaynaklanan problemlerin daha doğru bir örneğidir. Yöntem gibi bu sorunu çözmeyi amaçlayan en az bir .NET framework yöntemi düşünebilirim Enumerable.OfType<T>. Ama nihayetinde çalışma zamanında bir nesnenin türünü sorguya çekmenizin gerçeği benimle tam oturmuyor. Her ata …

10
İşlevsel Programlama savunucuları bu ifadeye Kod Tamamlama'da nasıl cevap verebilir?
İkinci baskının 839. sayfasında, Steve McConnell, programcıların büyük programlarda "karmaşıklığı ele geçirme" yollarını tartışıyor. Tüyoları bu ifadeyle sonuçlandı: "Nesneye yönelik programlama , aynı zamanda algoritmalar ve veriler için geçerli olan bir soyutlama düzeyi sağlar , yalnızca işlevsel ayrışmanın tek başına sağlamadığı bir tür soyutlama sağlar." "Karmaşıklığın azaltılması tartışmalı olarak etkili …

10
Soyut bir sınıfta arayüzler
İş arkadaşım ve ben, temel sınıflar ve arayüzler arasındaki ilişki hakkında farklı görüşler var. Bir sınıfın, bir arayüzün uygulanması gerektiğinde kullanılabiliyorsa, bir sınıfın bir arayüz uygulamaması gerektiğine inanıyoruz. Başka bir deyişle, böyle bir kod görmeyi seviyorum: interface IFooWorker { void Work(); } abstract class BaseWorker { ... base class behaviors …

3
OOPS'ta “S” ne anlama gelir?
Ben "tam form için aradık oops içinde" Google fakat maalesef pek belirsiz cevaplar vardır. Bazıları " Sistem ", bazıları ise " Yapı " olduğunu, bazıları da " Sinopsis " olarak bahsetti . Herhangi biri, doğru ve doğru bir referansla OOPS'un tam şeklini bulmak için beni aydınlatabilir mi? Herkese çok teşekkürler, …

5
Yuvalanmış Sınıfları ne zaman ve neden kullanmalı?
Nesneye Yönelik Programlama kullanarak, bir sınıf (iç içe geçmiş sınıf) içinde bir sınıf oluşturma gücümüz var, ancak 4 yıllık kodlama deneyimimde asla iç içe geçmiş bir sınıf oluşturmadım. Yuvalanmış sınıflar ne işe yarar? Bir sınıfın yuvalanmışsa özel olarak işaretlenebileceğini ve o sınıfın tüm özel üyelerine içerik içeren sınıftan erişebileceğimizi biliyorum. …

8
Bunları bir sınıfa veya işleve sarmak yerine uzun ancak anlaşılır kodu kopyalayıp yapıştırmak kabul edilebilir mi?
İnternete bağlanmak ve bunun gibi bağlantı sonuçlarını göstermek için bir kod parçam olduğunu varsayalım: HttpRequest* httpRequest=new HttpRequest(); httpRequest->setUrl("(some domain .com)"); httpRequest->setRequestType(HttpRequest::Type::POST); httpRequest->setRequestData("(something like name=?&age=30&...)"); httpRequest->setResponseCallback([=](HttpClient* client, HttpResponse* response){ string responseString=response->getResponseDataString(); if(response->getErrorCode()!=200){ if(response->getErrorCode()==404){ Alert* alert=new Alert(); alert->setFontSize(30); alert->setFontColor(255,255,255); alert->setPosition(Screen.MIDDLE); alert->show("Connection Error","Not Found"); }else if((some other different cases)){ (some other alert) }else …


6
Class anahtar kelimesi olmadan “nesne yönelimli” programlamayı uygulayabilir misiniz?
Diyelim ki bir bankada "hesap" soyutlama yapmak istiyoruz. İşte functionPython'da bir nesne kullanarak bir yaklaşım : def account(): """Return a dispatch dictionary representing a bank account. >>> a = account() >>> a['deposit'](100) 100 >>> a['withdraw'](90) 10 >>> a['withdraw'](90) 'Insufficient funds' >>> a['balance'] 10 """ def withdraw(amount): if amount > dispatch['balance']: …

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.