Ich bin ein Anfänger beim Programmieren, wenn ich mit dem Programmieren beginne Ich fange einfach an zu schreiben und löse das Problem. Ich schreibe das ganze Programm in einer einzigen Hauptfunktion. Ich weiß nicht wann ich Klassen und Funktionen machen soll.
Was sind gute Bücher, die ich lese, um diese Konzepte zu lernen?
Eine sehr allgemeine Frage, also nur ein paar Faustregeln:
Code-Wiederverwendung: Wenn Sie an zwei Stellen denselben oder sehr ähnlichen Code haben, sollte er in eine Funktion
Lesbarkeit: Wenn eine Funktion mehr als eine Seite auf dem Bildschirm umfasst, möchten Sie sie vielleicht in mehrere Funktionen aufteilen
focus: Jede Klasse oder Funktion sollte nur eine bestimmte Aufgabe ausführen. Alles, was nicht zu diesem Zweck wichtig ist, sollte an andere Klassen / Funktionen delegiert werden.
Ich denke, die kanonische Antwort hier ist, dass Sie Ihren Code so organisieren sollten, dass er lesbar und wartbar ist. Abgesehen davon ist es wichtig, die Kosten für die Organisation Ihres Codes und die Dauer Ihres Codes zu berücksichtigen.
Direkt als Antwort auf Ihre Frage: Funktionen sollten verwendet werden, um sich wiederholende oder anderweitig gut enthaltene Codeabschnitte zu ersetzen. Wenn Sie die gleichen 10 Operationen immer wieder auf die gleichen Elemente / Daten anwenden, sollten Sie darüber nachdenken, all diese Informationen in einer präziseren und klareren Funktion zu sammeln. Im Allgemeinen benötigt eine Funktion gut definierte Ein- und Ausgänge.
Klassen sammeln im Wesentlichen Funktionen und Daten zusammen. Ähnlich wie Sie eine Funktion verwenden sollten, um Operationen in übersichtliche, klar definierte Sammlungen von Operationen zu sammeln, sollten Klassen Funktionen und Daten organisieren, die für die gemeinsame Speicherung relevant sind. Das heißt, wenn Sie eine Reihe von Funktionen haben, die auf einige Dinge wie ein Lenkrad, Bremsen, Beschleuniger usw. wirken, sollten Sie darüber nachdenken, eine Fahrzeugklasse zu haben, um diese relevanten Funktionen und Daten / Objekte zu organisieren.
Abgesehen davon, dass Sie als organisatorisches Element fungieren, sollten Klassen verwendet werden, um die einfache Wiederverwendung und die Erstellung mehrerer "Dinge" zu ermöglichen - vorausgesetzt, Sie wollten eine Sammlung dieser Fahrzeuge. Mit Klassen können Sie Ihrem Programm eine Bedeutung oder zumindest eine Semantik zuordnen.
Der Sinn von all dem liegt jedoch darin, Ihr Leben und das Leben anderer leichter zu machen, wenn es darum geht, Ihr Programm zu verfassen und zu pflegen. Wenn Sie also eine Lösung für ein Problem in weniger als zehn Minuten benötigen und Sie denken, dass es sich um ein einmaliges Programm handelt, sollten Sie dies alles ignorieren, wenn Sie glauben, es würde Ihnen ermöglichen, schneller zu erreichen, was Sie benötigen. Denken Sie daran, dass all diese Organisation, Semantik und Einfachheit der wiederholten Operation vorhanden ist, um es einfacher zu machen, Ihre Ziele zu erreichen.
Sehen Sie sich
anProzedur, Unterroutine oder Funktion? , Objektorientierte Programmierung
Ein Objekt ist eigentlich ein diskretes Objekt Bündel von Funktionen und Verfahren, alles in Bezug auf ein bestimmtes real-world Konzept wie eine Bank Kontoinhaber oder Hockeyspieler in einem Computerspiel. Andere Stücke von Software kann nur auf das Objekt zugreifen Aufruf seiner Funktionen und Verfahren die durften von gerufen werden Außenseiter.
Grundsätzlich verwenden Sie eine Funktion / Prozedur / Methode, um einen bestimmten Codeabschnitt einzukapseln, der eine bestimmte Aufgabe oder eine Wiederverwendbarkeit erfüllt.
Klassen werden verwendet, um ein Objekt mit möglicherweise eigenen Daten und einer spezifischen Funktion / Prozedur / Methode, die für die Verwendung mit diesem Objekt sinnvoll ist, zu kapseln / darzustellen.
In einigen Sprachen können Klassen statisch gemacht werden, mit statischer Funktion / Prozedur / Methode, die dann als Hilfsfunktion / Prozedur / Methode
verwendet werden kannDies ist eine stilistische und präferenzbezogene Frage und je nachdem, wie formell ein Ort, an dem Sie arbeiten, eine Frage von Standards sein könnte. Ich folge ein paar Regeln.
Es gibt eine Menge Meinungen, aber im Laufe der Zeit müssen Sie Ihren eigenen Stil entwickeln.
Es ist eigentlich sehr einfach Nicky!
Der Zweck der Aufteilung von Code in Methoden besteht einfach darin, die Wiederverwendung zu ermöglichen. Wenn Sie eine Methode erstellen, erlauben Sie Ihrem Programm, sie jederzeit von mehreren Stellen aus aufzurufen, anstatt den Code immer wieder zu wiederholen.
Also jedes Mal, wenn Sie Zeilen schreiben und denken ... 'hey, ich brauche diese Funktionalität vielleicht irgendwo in meinem Programm', dann müssen Sie es in eine Methode einfügen.
Was Klassen betrifft, werden Sie versuchen, ähnliche Funktionalitäten zu gruppieren. Und versuchen Sie, den Unterricht kurz und einfach zu halten. Wenn Sie mehrere Klassen benötigen, gruppieren Sie sie auch in Paketen und so weiter.
Wenn ich Code schreibe, habe ich normalerweise eine ziemlich gute Idee, was ich wieder benutzen werde. Aber oft werde ich ein paar Codezeilen schreiben und feststellen, dass ich in der Vergangenheit etwas Ähnliches geschrieben habe. Also werde ich es finden und es in eine Methode einfügen, dann können die zwei oder mehr Orte es einfach aufrufen. Das ist Wiederverwendung von seiner besten Seite!
Sie können oft Analysatoren verwenden, um verschiedene Metriken zu finden, die Ihrer Wiederverwendung und Code-Duplizierung "eine Note geben".
Glücklich lernen!
Nur zu Ihrer Information: Es wird deutlicher werden, wann und warum Funktionen nützlich sind, wenn Sie zu größeren Projekten übergehen. Ich war ein wenig verwirrt von ihrer Verwendung, als ich anfing auch, wenn Ihr gesamtes Programm nur 20 bis 50 Zeilen Code ist, die einen sehr linearen Weg folgt, sie machen nicht viel Sinn. Aber wenn Sie beginnen, Bits von Code wiederzuverwenden, ist es sinnvoll, es in Funktionen zu werfen. Es erleichtert auch das Lesen und Folgen der Logik Ihres Programms, wenn Sie nur beschreibende Funktionsnamen lesen müssen, anstatt zu entschlüsseln, was die nächsten 5 Zeilen Code tun sollen.
Tags und Links programming-languages function class-design