Ich wollte eine Antwort auf diese Frage akzeptieren, konnte mich aber nicht für eine Antwort entscheiden, um das Häkchen zu setzen. Als solche habe ich die Originalautoren aufgewertet und diese als zusammenfassende Antwort erstellt. Vielen Dank an alle, die sich ein paar Minuten Zeit genommen haben. Ich habe festgestellt, dass der von Ihnen gewährte Einblick mir eine gute Richtung und ein wenig die Gewissheit gab, dass ich nicht von der Stange bin.
@nightcracker
Nun, das erste ist die Gefahr, zu viele Informationen preiszugeben. Die Standardeinstellung sollte privat und nicht öffentlich sein. Danach kommen zu viele Getter / Setter.
Ich hatte das Gefühl, dieses Problem in der Vergangenheit in Aktion beobachtet zu haben. Ihre Kommentare haben mich auch daran erinnert, dass ich durch das Ausblenden der zugrunde liegenden Variablen und ihrer Implementierung die Möglichkeit habe, ihre Implementierung zu ändern, ohne irgendetwas zu zerstören, das von ihnen abhängig ist.
Dominic Gurto
Entwerfen Sie die Benutzeroberfläche, bevor Sie überhaupt an die Implementierung denken. Design und Implementierung der Gene Bushuyev-Schnittstelle gehen oft in aufeinander folgenden Iterationen Hand in Hand, bis die endgültige Schnittstelle kristallisiert ist.
Ich fand, dass Dominics Kommentar ein großartiges Ideal war, um danach zu streben, aber ich denke, dass Gens Kommentar wirklich die Realität der Situation trifft. Bisher habe ich das in Aktion gesehen ... und fühle mich ein bisschen besser, dass es nicht ungewöhnlich ist. Ich denke, wenn ich als Programmierer reife, neige ich zu vollständigeren Designs, aber im Moment leide ich immer noch darunter, mich einzumischen und Code zu schreiben.
wantTheBest
Ich habe langsam angefangen, mit kleinen / mittleren prozeduralen Apps und ohne unternehmenskritische Dinge bei der Arbeit. Trennen Sie im ursprünglichen Prozedurcode die Datenstrukturen vom Beobachter- / Modifikatorcode
Das macht sehr viel Sinn ... Ich mochte die Idee, die Dinge am Laufen zu halten, aber einige der unkritischen Dinge mit Klassen zu überarbeiten.
jpm
Eine Sache, die Sie definitiv nicht tun möchten, ist, ein Feld zu haben, das auf Konsistenz im Mutator überprüft werden muss, und es öffentlich zu lassen
Ich habe seit einiger Zeit gewusst, dass dies eine der Stärken der Kapselung von Daten ist.
Verrückter Eddie
Jemand, der denkt, dass er sich an das OO-Paradigma halten und die anderen in der Reihenfolge der goto-Anweisung in Stufen der Unmoral behandeln sollte, verpasst es wirklich, wenn er sich dieses Paradigma nicht ansieht. Die Metaprogrammierungskapazität von Vorlagen ist ebenfalls beeindruckend.
Ich habe Crazy Eddies Antwort ursprünglich sehr vermisst, weil ich einige der genannten Themen nicht gelesen hatte ... wie Metaprogrammierung. Ich denke, die großartige Botschaft in CEs Post war, dass C ++ eine solche Mischung aus Fähigkeiten und Stilen ist, dass jeder sein bestes Potenzial ausschöpfen sollte ... auch zwingend, wenn das Sinn macht.
Nochmals vielen Dank an alle, die geantwortet haben!