Gibt es alternative Hauptstrom-Programmiermethoden zu OOP unter Verwendung von C #?

8

Was die Programmiersprachen angeht, liebe ich C # und all das Gute, das aus dem .net-Framework (LINQ usw.) stammt.

Mein Hauptanliegen ist, dass ich anscheinend zu viel Code produziere, und mit OOP habe ich Bedenken, dass mein Code nicht immer so einfach zu verwalten ist.

Ich möchte weiterhin C # und .Net verwenden, aber gibt es andere Ansätze, um die Sprache anzuwenden, um insgesamt weniger Code zu erhalten und im Vergleich zu Lehrbuch-OOP einfacher zu verwalten?

Danke im Voraus!

JL01
quelle

Antworten:

11

Ja - ich habe das gleiche Problem gefunden. OOP ist nicht der beste Weg, um alle Probleme zu lösen. C # unterstützt das Funktionsparadigma jedoch recht gut und ich habe es jetzt in einigen Projekten erfolgreich eingesetzt.

Hier gibt es ein interessantes Gespräch zur Vereinfachung, das Ihnen zumindest einige Denkanstöße geben sollte: http://skillsmatter.com/podcast/design-architecture/simple-is-better

Gelöscht
quelle
1

Wenn Sie experimentieren möchten, versuchen Sie AOP / C # wie hier und hier . Das PDF enthält ein feines Blatt mit Vor- und Nachteilen.

mtijn
quelle
1

Aspektorientierte Programmierung kann es Ihnen ermöglichen, eine gewisse Effizienz zu erzielen, indem Sie Ihre "Querschnittsthemen" einheitlich behandeln. Es gibt andere mögliche Vorteile, aber meiner Meinung nach wäre es nützlich für Sie!

http://en.wikipedia.org/wiki/Aspect-oriented_programming http://www.sharpcrafters.com/aop.net

Justin Vieira
quelle
0

Bevor Sie zu weit in unterschiedliche Methoden vordringen, sollten Sie das Refactoring nutzen , um Ihren Code zu vereinfachen und zu konsolidieren. Hier ist Fowlers Katalog, die " Alpha-Liste der Refactorings ", mit denen Sie Ihren C # -Code verbessern und verwalten können.

Indem Sie lernen, effektiv für die Wiederverwendung zu entwerfen und Ihre Anwendung von Schnittstellen, abstrakten Klassen, Klassenhierarchien, Abhängigkeitsinjektion und ähnlichen Tools, die in der objektorientierten Standardmethode vorhanden sind, zu optimieren, sind Sie möglicherweise auf dem besten Weg, die gewünschten Ergebnisse zu erzielen .

Darüber hinaus hat @Chris Smith Sie bereits darauf hingewiesen, dass neuere Versionen von C # (3.5 und 4.0) mehrere funktionale Programmierfunktionen hinzugefügt haben, die Ihnen dabei helfen können, Ihren Code zum Laufen zu bringen!

Wenn Sie funktionale Programmierung mögen, probieren Sie die neue F # -Sprache von Microsoft aus ! Eigentlich ist es eher "objektfunktional", eine Mischung aus beiden Methoden. Möglicherweise möchten Sie auch wissen, dass Sie F # und C # in derselben .NET-Lösung mischen können .

Ich stimme auch den anderen Kommentatoren zu, dass AOP sicherlich seine Verwendung hat!

John Tobler
quelle
0

OOPS hat möglicherweise mehr Code verursacht, aber wenn Ihre Anwendung groß ist, hätte die reduzierte Komplexität, die OOPS mit sich bringt, zu wartbarem, verwaltbarem Code und Klarheit geführt. Wenn dies nicht der Fall ist und Sie es als Belastung empfinden, haben Sie es möglicherweise nicht ordnungsgemäß verwendet. Überprüfen Sie, ob Ihre Klassen die Domänenobjekte richtig darstellen und die Kommunikation zwischen ihnen in etwa dem entspricht, was in dem realen System geschieht, das Sie im Programm simulieren möchten.

In C # ist zu viel Code kein realistischer Grund, sich von OOPS IMHO zu entfernen. Ein Paradigmenwechsel sollte in Wirklichkeit einen viel triftigeren Grund haben.

Man kann 'strukturierte Programmierung' in C # machen .. aber ich denke, es wird eine Verschwendung von Zeit und Mühe sein. Und die meisten Mainstream-Alternativen verwenden auch OOPS.

WinW
quelle