Als «object-oriented-design» getaggte Fragen

Objektorientiertes Design ist der Prozess der Planung eines Systems interagierender Objekte zum Lösen eines Softwareproblems.

3
Wie löse ich die zirkuläre Abhängigkeit?
Ich habe drei Klassen, die kreisförmig voneinander abhängig sind: TestExecuter führt Anforderungen von TestScenario aus und speichert eine Berichtsdatei mit der ReportGenerator-Klasse. So: TestExecuter ist von ReportGenerator abhängig, um den Bericht zu generieren ReportGenerator hängt von TestScenario und den in TestExecuter festgelegten Parametern ab. TestScenario ist abhängig von TestExecuter. Kann …

2
Wie entwerfe ich ein skalierbares Benachrichtigungssystem? [geschlossen]
Ich muss einen Benachrichtigungssystem-Manager schreiben. Hier sind meine Anforderungen: Ich muss in der Lage sein, eine Benachrichtigung auf verschiedenen Plattformen zu senden, die möglicherweise völlig unterschiedlich sind (zum Beispiel muss ich in der Lage sein, entweder eine SMS oder eine E-Mail zu senden). Manchmal ist die Benachrichtigung für alle Empfänger …

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 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 passiert mit den Tests von Methoden, wenn diese Methode nach einer Neugestaltung in TDD privat wird?
Angenommen, ich beginne mit der Entwicklung eines Rollenspiels mit Charakteren, die andere Charaktere und dergleichen angreifen. Mit TDD mache ich einige Testfälle, um die Logik in der Character.receiveAttack(Int)Methode zu testen . Etwas wie das: @Test fun healthIsReducedWhenCharacterIsAttacked() { val c = Character(100) //arg is the health c.receiveAttack(50) //arg is the …


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 …

6
Gibt es ein Entwurfsmuster, mit dem Sie nicht mehr nach Flags suchen müssen?
Ich werde einige Zeichenfolgen-Nutzdaten in der Datenbank speichern. Ich habe zwei globale Konfigurationen: Verschlüsselung Kompression Diese können über die Konfiguration so aktiviert oder deaktiviert werden, dass entweder nur einer von ihnen aktiviert ist, beide aktiviert sind oder beide deaktiviert sind. Meine aktuelle Implementierung ist folgende: if (encryptionEnable && !compressEnable) { …

7
Ignoriert die funktionale Programmierung die Vorteile, die sich aus den „Kriterien für die Zerlegung von Systemen in Module“ (Ausblenden von Daten) ergeben?
Es gibt einen klassischen Artikel mit dem Namen " Zu den Kriterien für die Zerlegung von Systemen in Module" , den ich gerade zum ersten Mal gelesen habe. Es macht für mich vollkommen Sinn und ist wahrscheinlich einer dieser Artikel, auf denen OOP basierte. Sein Fazit: Wir haben versucht, anhand …

9
Was kann schief gehen, wenn das Liskov-Substitutionsprinzip verletzt wird?
Ich verfolgte diese hoch gestimmte Frage bezüglich eines möglichen Verstoßes gegen das Liskov-Substitutionsprinzip. Ich weiß, was das Liskov-Substitutionsprinzip ist, aber was mir immer noch nicht klar ist, kann schief gehen, wenn ich als Entwickler beim Schreiben von objektorientiertem Code nicht über das Prinzip nachdenke.



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.