Als «object-oriented» getaggte Fragen

Eine Methode, mit der ein System als eine Reihe von Objekten modelliert werden kann, die modular gesteuert und bearbeitet werden können


6
Ist es in Ordnung, Code-Gerüche zu haben, wenn eine einfachere Lösung für ein anderes Problem zugelassen wird? [geschlossen]
Eine Gruppe von Freunden und ich haben in der letzten Zeit an einem Projekt gearbeitet, und wir wollten eine nette OOP-Methode erfinden, um ein für unser Produkt spezifisches Szenario darzustellen. Grundsätzlich arbeiten wir an einem Bullet-Hell-Spiel im Touhou-Stil , und wir wollten ein System entwickeln, in dem wir jedes mögliche …

18
Was würden Sie tun, wenn Ihr Kunde von Ihnen verlangt, dass Sie keine objektorientierte Programmierung verwenden?
Ich schreibe ein Programm zur Simulation der Aktivität von Ameisen in einem Raster (PDF). Die Ameise kann sich bewegen, Dinge aufnehmen und Dinge fallen lassen. Das Problem ist, dass während die Aktion der Ameisen und die Positionen jeder Ameise leicht durch Klassenattribute verfolgt werden können (und wir können leicht viele …

14
Warum werden Objekte als Referenz übergeben?
Ein junger Mitarbeiter, der OO studierte, hat mich gefragt, warum jedes Objekt als Referenz übergeben wird, was das Gegenteil von primitiven Typen oder Strukturen ist. Es ist ein gemeinsames Merkmal von Sprachen wie Java und C #. Ich konnte keine gute Antwort für ihn finden. Was sind die Beweggründe für …

10
Senden Sie im Allgemeinen Objekte oder deren Mitgliedsvariablen in Funktionen?
Welches ist allgemein akzeptierte Praxis zwischen diesen beiden Fällen: function insertIntoDatabase(Account account, Otherthing thing) { database.insertMethod(account.getId(), thing.getId(), thing.getSomeValue()); } oder function insertIntoDatabase(long accountId, long thingId, double someValue) { database.insertMethod(accountId, thingId, someValue); } Mit anderen Worten, ist es im Allgemeinen besser, ganze Objekte herumzuleiten oder nur die Felder, die Sie benötigen?


7
Ist es ein Codegeruch, ein Flag in einer Schleife zu setzen, um es später zu verwenden?
Ich habe ein Stück Code, in dem ich eine Map iteriere, bis eine bestimmte Bedingung erfüllt ist, und diese Bedingung später benutze, um weitere Aufgaben zu erledigen. Beispiel: 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) …

10
Wie finde ich bei einer Herde von Pferden die durchschnittliche Hornlänge aller Einhörner?
Die obige Frage ist ein abstraktes Beispiel für ein häufiges Problem, auf das ich im Legacy-Code stoße, oder genauer gesagt, Probleme, die sich aus früheren Versuchen zur Lösung dieses Problems ergeben. Ich kann mir mindestens eine .NET Framework-Methode vorstellen, die dieses Problem lösen soll, wie die Enumerable.OfType<T>Methode. Aber die Tatsache, …

10
Wie würden Befürworter der funktionalen Programmierung diese Aussage in Code Complete beantworten?
Auf Seite 839 der zweiten Ausgabe erörtert Steve McConnell alle Möglichkeiten, wie Programmierer die Komplexität in großen Programmen "beherrschen" können. Seine Tipps gipfeln in dieser Aussage: "Objektorientierte Programmierung bietet eine Abstraktionsebene, die gleichzeitig für Algorithmen und Daten gilt , eine Art von Abstraktion, die die funktionale Zerlegung allein nicht bot." …


3
Was bedeutet "S" in OOPS?
Ich habe in Google nach der vollständigen Form von " OOPS " gesucht , aber leider gibt es viele mehrdeutige Antworten. Einige sagen, dass es " Systeme " ist, und einige sagen, dass es " Struktur " ist, und einige haben es sogar als " Synopse " erwähnt. Kann mich …


8
Ist es akzeptabel, langen, aber unkomplizierten Code zu kopieren und einzufügen, anstatt ihn in eine Klasse oder Funktion zu packen?
Angenommen, ich habe ein Codesegment, um eine Verbindung zum Internet herzustellen und die entsprechenden Verbindungsergebnisse anzuzeigen: 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 …


6
Können Sie eine objektorientierte Programmierung ohne das Schlüsselwort class implementieren?
Angenommen, wir möchten eine Abstraktion eines "Kontos" in einer Bank bereitstellen. Hier ist ein Ansatz, bei dem ein functionObjekt in Python verwendet wird: 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 …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.