2011-01-28 8 views
29

Sto leggendo "Design Patterns: Elements of Reusable OOSW". Nel secondo capitolo, gli autori forniscono un case study di un editor a cui si riferiscono come Lexi, che sembra essere scritto in C++. Ho guardato in giro in tutto il mondo, ma l'unico useful link ho trovato detto questo:Gang of Four: editor lexi C++ source

Il Gof ci dicono in una nota che Lexi è sulla base di "Doc, un editor di testo sviluppato da Calder". Ma questo documento delinea solo un editor, senza alcuna fonte. E credo persino che oggi Lexi non sia mai esistito veramente come un programma.

Il collegamento fornisce la sorgente Delphi. Sto cercando C++, perché è quello con cui mi sento a mio agio, ed è quello che viene usato nel libro.

Qualcuno sa dove posso trovare il sorgente C++ per Lexi? Se l'originale non è mai esistito, sarebbe bello trovare qualcosa che io possa usare come base. Non ho davvero voglia di scrivere da zero il mio editor di testo solo per poter lavorare sul case study di questo libro.

+0

se non lo trovi mai e vuoi veramente lavorare con le sorgenti di editor di testo, ti consiglio scintilla come un buon punto di partenza. – justin

+0

Gang of Four è la migliore sul libro di modelli di design. Lo sto leggendo ora. Stavo cercando anche un codice C++ di exi Lexi, ma non lo trovo. Qual è la domanda che hai sull'editor? –

+0

@Justin: personalmente, non sono così entusiasta di lavorare con gli editor di testo - è solo che il libro inizia con loro, e ho pensato che avrei potuto immergermi nella parte del pattern se avessi le sorgenti Lexi. – misha

risposta

0

Questo è il codice sorgente di LEXI, scritto in Delphi, purtroppo per voi: LEXI sources.

+3

Grazie per la risposta, ma nella mia domanda iniziale c'è già un collegamento alle origini di Delphi :) – misha

2

Posso mostrare la mia età qui ma sei sicuro del C++? Ho la strana sensazione che quando il libro è uscito in origine potrebbe essere stato orientato verso Smalltalk. È qualcosa che mi tormenta in fondo alla mente, non posso sostenerlo temo

+0

Molti dei modelli sono stati scoperti/sviluppati in Smalltalk, ma il libro copre sia C++ che Smalltalk, iirc. In realtà non ho letto il libro da molto tempo. :( –

6

Doc è stato sviluppato utilizzando il kit di strumenti dell'interfaccia utente InterViews. Credo che la fonte dei documenti sia parte della distribuzione di InterViews. Doc era abituato a scrivere la tesi di Paolo. (Paul Calder è stato il mio docente presso la Flinders University)

Se si guarda il codice di Interview, si potrebbe essere sorpresi. È stato sviluppato prima che esistesse il C++ moderno. Ad esempio, non ci sono modelli. E non ci sono commenti nel codice.

A mio parere, Lexi non è mai esistito. È stato creato come esempio per il libro di GoF.

4

Forse un'implementazione Java può essere d'aiuto, essendo più simile a C++. Eccolo: jexieditor - A WYSIWYG editor based on JavaSE. Non ho avuto uno sguardo al codice ancora, comunque

+0

Come si esegue l'applicazione? Utilizzando MacOS – arush436

+1

Non conosco i dettagli dell'utilizzo di MacOs, comunque, dopo aver decompresso il file, nella sottocartella dist esiste un file start.bat, valido per Windows ma che dovrebbe ti ho dato l'idea: ha solo 3 linee: immagino che puoi semplicemente aprirlo e copiare la riga di comando per avviare il file jar: (java -classpath jexi.jar; swt.jar; res.jar com.crackj2ee.jexi. ui.Application). O forse adattare il file batch all'ambiente MacOs ... –

0

Sembra che il codice sorgente potrebbe essere nella versione CD-ROM di Design Patterns che è uscito nel 1998. Secondo il Amazon listing, il CD contiene (tra le altre cose):

codice di esempio dimostra attuazione modello

Inoltre,

Tutti gli schemi sono compilati da esempi reali e includono codice che dimostra come possono essere implementati in linguaggi di programmazione orientati agli oggetti come C++ e Smalltalk. I lettori che già possiedono il libro vorranno che il CD tragga vantaggio dal suo meccanismo di ricerca dinamico e dai modelli pronti per l'installazione.

Se questi esempi di codice includono l'intera sorgente Lexi impossibile da indicare dall'elenco e il prezzo corrente del CD (£ 86,87) è piuttosto alto. Ma potrebbe valere la pena controllare se alcune librerie locali hanno il CD in magazzino.

0

Stavo solo cercando di scoprire se esiste una versione Lexi funzionante, per avere un riferimento concreto, ma non l'ho trovato. Ho trovato questa versione Java su GitHub: https://github.com/AmitDutta/lexi Non so, forse potrebbe essere utile per lo scopo di qualcuno qui.