Können Sie wirklich eine schnelle Textverarbeitung mit GoF Design Patterns bauen?

stimmen
4

Der Gang of Four Design Patterns verwendet ein Textverarbeitungsprogramm als Beispiel für zumindest einige ihrer Muster, insbesondere Composite- und Flyweight.

Anders als unter Verwendung von C oder C ++, könnten Sie wirklich diese Muster verwenden und den objektorientierten Kopf sie mit sich bringen eine hochleistungs voll ausgestattete Textverarbeitung zu schreiben?

Ich weiß, dass Eclipse-in Java geschrieben ist, aber ich habe es nicht viel gebraucht, damit ich weiß nicht, ob es alles, was schnell ist oder so poliert wie so etwas wie Visual Studio, die ein C ++ basierten Textverarbeitungssystem.


Früher habe ich nur C ++ und Java als Beispiele. Die Frage hat mehr mit dem Overhead zu tun eine Menge Objekten im Speicher zu haben, wie Sie es in einer Anwendung wie ein Textverarbeitungsprogramm oder sogar ein Spiel.

Entwurfsmuster fördern Abstraktion auf Kosten der Kargheit, obwohl sie in der Regel darauf hinweisen, wenn Sie vielleicht eine Art von Leistungseinbußen nehmen. Word-Prozessoren und vor allem Spiele erhalten den größten Nutzen aus möglichst nahe an das Metall wie möglich zu sein.

Ich habe mich nur gefragt, ob jemand eine schnelle objektorientierte wusste Textverarbeitungs- oder Texteditor, der nicht in C ++ geschrieben wurde, und ob sie ein Muster verwenden bauen würde oder würde sie eine Menge der abstrahiert weg von Dingen forgoe?

Veröffentlicht am 19/08/2008 um 04:31
quelle vom benutzer
In anderen Sprachen...                            


7 antworten

stimmen
5

Fliegengewicht ist wirklich nur eine Möglichkeit, Ressourcen in Situationen der Erhaltung, wo es Tausende von Objekten mit intrinsischem gemeinsam genutzten Zustand sind, so könnte es in höheren Sprachen als C / C ++ nützlich sein. Vielleicht war die GoF des Beispiel Glyphen in einem Dokument verwendet nicht die beste Wahl, um diese Muster zu illustrieren.

Ich denke, es gibt viel mehr, um eine Hochleistungs-Textverarbeitung Aufbau als nur diese Grundmuster obwohl - nicht sicher, ob es irgendetwas in GoF ist, die erfolgreich dieses in der Lage, Regeln aus zu tun.

Im Allgemeinen Visual Studio (VS) ist weiter fortgeschritten und führt deutlich besser als Eklipse - zumindest, die Versionen von VS, dass ich gesehen habe. Eclipse ist eine der eindrucksvollsten Java-Anwendungen gibt, aber es läuft ganz gut auf neuere Maschinen mit vielen RAM.

Beantwortet am 19/08/2008 um 04:54
quelle vom benutzer

stimmen
4

Nun, Fliegengewicht ist ein lächerliches Muster in einem Textverarbeitungsprogramm zu verwenden. IIRC, sie hatten jedes Zeichen als Objekt verwiesen wird [Anmerkung: Es ist für jeden war Glyphe , die immer noch verrückt ist , weil Ihr Betriebssystem glücklich , dass für Sie ziehen wird]. Mit einem Zeiger breiter als ein Zeichen zu sein und der gesamten Verarbeitung mit indirection verbunden ist , würden Sie verrückt sein , dass bestimmte Muster in einem Textverarbeitungsprogramm auf diese Weise zu verwenden.

Wenn Sie bei der Gestaltung von Textverarbeitungsprogrammen interessiert sind, fand ich einen Artikel, der keine Muster nicht ansprechen , aber auf einige der sieht Datenstrukturen Überlegungen zugrunde liegenden Textverarbeitungsarchitektur und Design .

Versuch dich zu erinnern, dass Design-Muster gibt es Ihnen das Leben leichter zu machen, nicht für dich rein. Es muss ein Grund, um ein Muster zu verwenden, hat es einige Vorteile zu bieten.

Beantwortet am 19/08/2008 um 04:44
quelle vom benutzer

stimmen
1

Der Punkt der GoF und Muster im Allgemeinen ist, darüber zu sprechen, wie die Dinge „richtig“ wie in der richtigen, nicht unbedingt „rechts“, wie er das Richtige für die Umstände zu tun. Wo Leistung ein Problem, und Sie feststellen, dass keine Namen Muster angemessene Leistung geben, dann vielleicht können Sie begründen Sie Ihren eigenen Weg zu gehen. Aber eine gute Kenntnis von Mustern gibt Ihnen eine „vernünftige default“ und wird wahrscheinlich bedeuten, dass Sie opfern Klarheit / SoC / etc nur so viel wie nötig ist eine angemessene Leistung zu geben.

Das Gefühl, dass Sie „abweichend“ von der Norm werden werden Sie a) zweimal überlegen, und b) auch den nicht-idiomatischen Code kommentieren.

Muster sind wichtige Erkenntnisse, aber nichts ist Evangelium und Sie müssen immer Urteil gelten.

Nachdem das alles gesagt - ich nicht aus irgendeinem Grund denken, warum Sie nicht einen anständigen Texteditor Muster und einem modernen JDK schreiben konnte

Beantwortet am 11/10/2008 um 01:14
quelle vom benutzer

stimmen
0

Ja, aktuelle Maschinen sind schnell genug und haben genug Speicher, dass das möglich ist. Wenn Sie einen Blick auf Squeak nehmen, sehen Sie ein Smalltalk IDE in Smalltalk geschrieben, deutlich langsamer als Java, aber immer noch schnell genug. HD-Videobearbeitung auf der anderen Seite ist etwas, das derzeit ein Bedürfnis nach einer untergeordneten Unterstützung hat.

Beantwortet am 11/12/2008 um 16:42
quelle vom benutzer

stimmen
0

Eclipse + NetBeans + IntelliJ alle sind so ziemlich alle in Java oder geschrieben etwas , das auf der JVM läuft (nicht C ++). In mindestens zwei dieser IDEs Ich habe einige Zeit mit dem Editor - Code ausgegeben, so kann ich Ihnen seine alle Java (und es ist nicht einfach , entweder) gewährleisten.

VS 2005 war meine letzte Erfahrung von Visual Studio, und selbst dann dachte ich Eklipse war viel stärker auf (IntelliJ doppelt so Zeit gegeben, um sich aufzuwärmen und Index).

Nicht sicher, wie das ist relevant, aber das ist meine Erfahrung. Aber ich bin überrascht, Visual Studio noch heute in C ++ geschrieben ist - ich würde denken, dass es in Microsofts Interesse wäre, C # zu verwenden - wenn nichts anderes wäre es wirklich seine Leistung viel Druck machen, nichts wie Ihr eigenes Hundefutter essen!

Beantwortet am 19/08/2008 um 07:23
quelle vom benutzer

stimmen
0

Eines der Dinge, die Sie dürfen nicht vergessen, war, dass das GoF Buch in den frühen 90er Jahren geschrieben wurde, wenn die vorherrschenden OSes nicht umfangreiche Grafikbibliotheken hatte. Auch war von Windows noch nicht ein O zu dieser Zeit.

IIRC GoF wurde seit etwa 1990 im Jahr 1994. Auch im Jahr 1994 Windows 95 Beta zur Verfügung steht (und läuft auf meinem 486DX33) und Windows 3.x war es schon veröffentlicht worden.

Beantwortet am 19/08/2008 um 06:23
quelle vom benutzer

stimmen
0

Diese Frage scheint tatsächlich über Java vs. C ++ Leistung zu sein, und das ist nicht der Objektorientierung so viel wie bei der Garbage Collection und so auf einer virtuellen Maschine ausgeführt wird.

In diesem White Paper auf Java vs. C ++ Leistung könnte lesenswert sein.

Beantwortet am 19/08/2008 um 04:36
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more