2011-01-28 11 views
29

Estoy leyendo "Design Patterns: Elements of Reusable OOSW". En el capítulo dos, los autores proporcionan un estudio de caso de un editor al que se refieren como Lexi, que parece estar escrito en C++. He buscado por todas partes, pero la única que pude encontrar useful link dije esto:Gang of Four: lexi editor C++ fuente

El Gof nos dice en una nota que Lexi es basado en "Doctor, una aplicación de edición de texto desarrollado por Calder". Pero este documento solo describe un editor, sin ninguna fuente. E incluso creo que hoy en día que Lexi nunca existió realmente como un programa.

El enlace proporciona fuente Delphi. Estoy detrás de C++, porque eso es con lo que me siento cómodo, y eso es lo que se usa en el libro.

¿Alguien sabe dónde puedo encontrar la fuente de C++ para Lexi? Si el original nunca existió, sería bueno encontrar algo que pueda usar como base. Realmente no tengo ganas de escribir mi propio editor de texto desde cero solo para poder trabajar en el estudio de caso de este libro.

+0

si nunca lo encuentras y realmente quieres trabajar con fuentes de editor de texto, recomiendo scintilla como un buen punto de partida. – justin

+0

Gang of Four es el mejor sobre el libro de patrones de diseño. Lo estoy leyendo ahora. Estaba buscando un código C++ de Lexi exitor también, pero no lo encuentro. ¿Cuál es la pregunta que tienes sobre el editor? –

+0

@Justin: personalmente, no estoy tan emocionado por trabajar con editores de texto, es solo que el libro comienza con ellos, y pensé que podría bucear en la parte del patrón si tuviera las fuentes de Lexi. – misha

Respuesta

0

Este es el código fuente de LEXI, escrito en Delphi lamentablemente para usted: LEXI sources.

+3

Gracias por la respuesta, pero ya hay un enlace a las fuentes Delphi en mi pregunta original :) – misha

2

Puedo estar mostrando mi edad aquí, pero ¿estás seguro de C++? Tengo la extraña sensación de que, cuando salió originalmente, se orientó hacia Smalltalk. Es solo algo molesto en mi mente, no puedo justificarlo. Temo que

+0

Muchos de los patrones se descubrieron/desarrollaron primero en Smalltalk, pero el libro abarca tanto C++ como Smalltalk, iirc. No he leído el libro en mucho tiempo. :( –

6

El documento fue desarrollado usando el kit de herramientas de interfaz de usuario InterViews. Creo que la fuente del documento es parte de la distribución de InterViews. Doc fue utilizado para componer la tesis de Paul. (Paul Calder fue mi conferenciante en la Universidad de Flinders)

Si miras el código de InterViews, es posible que te sorprenda. Fue desarrollado antes de que existiera C++ moderno. Por ejemplo, no hay plantillas. Y no hay comentarios en el código.

A mi entender, Lexi nunca existió. Fue creado como un ejemplo para el libro por GoF.

4

Tal vez una implementación de Java puede ayudar, siendo más similar a C++. Aquí está: jexieditor - A WYSIWYG editor based on JavaSE. No he tenido un vistazo al código sin embargo, de todos modos

+0

¿Cómo se ejecuta la aplicación? Con MacOS. – arush436

+1

No sé los detalles del uso de MacOs, de todos modos, después de descomprimir el archivo, en la subcarpeta dist hay un archivo start.bat, válido para Windows pero debería te doy la idea. Tiene solo 3 líneas. Supongo que puedes abrirlo y copiar la línea de comando para abrir el archivo jar: (java-classpath jexi.jar; swt.jar; res.jar com.crackj2ee.jexi). ui.Application). O tal vez adaptar el archivo por lotes al entorno MacOs ... –

0

Parece que el código fuente podría estar en la versión en CD-ROM de patrones de diseño que salió en 1998. Según el Amazon listing, el CD contiene (entre otras cosas):

código de ejemplo que muestra la implementación patrón

Además,

Todos los patrones se compilan a partir de ejemplos del mundo real e incluyen código que demuestra cómo se pueden implementar en lenguajes de programación orientados a objetos como C++ y Smalltalk. Los lectores que ya poseen el libro querrán que el CD aproveche su mecanismo dinámico de búsqueda y los patrones listos para instalar.

Ya sea que estos ejemplos de código incluyan la fuente completa de Lexi es imposible de distinguir de la lista, y el precio actual del CD (£ 86.87) es bastante alto. Pero podría valer la pena verificar si alguna biblioteca local tiene el CD en stock.

0

Estaba tratando de averiguar si existe una versión de Lexi que funciona realmente, para tener una referencia concreta, pero no la encontré. Encontré esta versión de Java en GitHub: https://github.com/AmitDutta/lexi No sé, quizás podría ser útil para el propósito de alguien aquí.