Можете ли вы построить быстрый текстовый процессор с Design Patterns GoF?

голоса
4

Банда из четырех в Design Patterns использует текстовый процессор в качестве примера , по крайней мере , некоторые из их моделей, в частности , композитный и мух.

Другой, чем при использовании C или C ++, не могли бы вы на самом деле использовать эти шаблоны и объектно-ориентированный накладные расходы, они влекут за собой, чтобы написать высокопроизводительный полнофункциональный текстовый процессор?

Я знаю, что Eclipse, написан на Java, но я не использовал его много, поэтому я не знаю, если это все, что быстро или как полированная что-то вроде Visual Studio, который имеет C ++ на основе редактирования текста системы.


Я только использовал C ++ и Java в качестве примеров. Вопрос имеет больше общего с погона, имеющих большое количество объектов, находящихся в памяти, как вы бы в приложения, такие как текстовый процессор или даже игры.

Дизайн модели способствуют абстракции за счет бережливости, даже если они, как правило, указывают, когда вы могли бы принять какой-то удар по производительности. Текстовые процессоры и особенно игры получить максимальную пользу от того, как близко к металлу, как это возможно.

Мне было просто интересно, если кто-нибудь знал о быстрый объектно-ориентированный текстовый процессор или текстовый редактор, который не был написан на C ++, и есть ли они построить один с использованием шаблонов или они forgoe много из абстрагируясь от вещей?

Задан 19/08/2008 в 04:31
источник пользователем
На других языках...                            


7 ответов

голоса
5

Наименьший вес действительно просто способ сохранения ресурсов в тех ситуациях, где есть тысячи объектов с внутренним общим состоянием, так что это может быть полезно в языках более высокого уровня, чем C / C ++. Может быть, например, Гоф, используя глифы в документе не лучший выбор, чтобы проиллюстрировать эту модель.

Я думаю, что есть намного больше, чтобы строить процессор слова высокой производительности, чем только эти основные закономерности, хотя - не уверен, есть ли что-нибудь в GoF, что исключает возможность успешно сделать это.

Как правило, Visual Studio (VS) является более продвинутым и работает значительно лучше, чем Eclipse, - по крайней мере, версии VS, которые я видел. Затмение является одним из самых впечатляющих Java-приложений там, хотя, он работает очень хорошо на более поздних машинах с большим объемом оперативной памяти.

Ответил 19/08/2008 в 04:54
источник пользователем

голоса
4

Ну, мухи это смешно шаблон для использования в текстовом процессоре. IIRC, они имели каждый символ на который ссылается как объект [примечание: это было для каждого глифа , который до сих пор с ума , потому что ваша ОС будет счастливо сделать это для вас]. С указателем быть шире , чем характер и всех обработки , связанных с косвенностью, вы бы с умом использовать этот конкретный шаблон таким образом в текстовом процессоре.

Если вы заинтересованы в разработке текстовых процессоров, я нашел статью , которая не обращается шаблонов но смотреть на некоторых структуры данных , лежащих в основе текстового процессора и проектные соображения .

Постарайтесь вспомнить, что дизайн модели есть, чтобы сделать вашу жизнь проще, а не для вас, чтобы быть чистыми. Там должно быть причиной, чтобы использовать шаблон, он может предложить некоторую пользу.

Ответил 19/08/2008 в 04:44
источник пользователем

голоса
1

Точка GoF и модели в целом говорить о том, как делать вещи «правильно», как в правильном, не обязательно «праве», как и в праве на обстоятельства. Если производительность является проблемой, и вы обнаружите, что не назвали модель не дает достаточной производительности, то, возможно, вы можете оправдать идти своим собственным путем. Но хорошее знание паттернов дает вам «разумное значение по умолчанию» и, вероятно, означает, что вы жертвуете ясность / SoC / и т.д. лишь столько, сколько необходимо, чтобы дать адекватную производительность.

Ощущение, что вы «отклоняясь» от нормы призывает вас к) подумать дважды, и б) комментарии не-идиоматических код хорошо.

Модели имеют жизненно важное знание, но ничего не Евангелие, и вы всегда должны применять суждение.

Сказав все это - я не могу думать о какой-либо причине, почему вы не могли бы написать приличный текстовый редактор с использованием шаблонов и современных JDK

Ответил 11/10/2008 в 01:14
источник пользователем

голоса
0

Да, современные машины достаточно быстро и имеют достаточно памяти, что возможно. Если вы посмотрите на Писк, вы видите Smalltalk IDE, написанный на Smalltalk, значительно медленнее, чем Java, но все же достаточно быстро. HD редактирование видео с другой стороны, является то, что в настоящее время есть необходимость некоторой поддержки более низкого уровня.

Ответил 11/12/2008 в 16:42
источник пользователем

голоса
0

Затмение + + IntelliJ NetBeans все написаны почти все в Java или что - то , что работает на JVM (не C ++). По крайней мере 2 из этой Иды я провел некоторое время с кодом редактора, так что я могу заверить вас , его все Java (и его не так просто либо).

VS 2005 был мой последний опыт визуальной студии, и даже тогда я думал, что затмение было намного более отзывчивым (IntelliJ вдвойне, учитывая время, чтобы разогреться и индекс).

Не знаю, как тот интерес, но те мой опыт. Но я удивлен, визуальная студия до сих пор написано в C ++ - Я думаю, что это было бы в интересах Microsoft, чтобы использовать C # - если ничего не будет действительно подтолкнуть его работу трудно, ничего, как есть свой собственный корм для собак!

Ответил 19/08/2008 в 07:23
источник пользователем

голоса
0

Одна из вещей, которые вы должны помнить, что книга GoF была написана в начале 90-х годов, когда преобладающие операционки не имеют обширные графические библиотеки. Даже для Windows еще не была ОС в то время.

IIRC GoF был выпущен в 1994 году даже в 1994 году для Windows 95 Beta была доступна (и работает на моем 486DX33) и Windows 3.x была примерно с примерно 1990.

Ответил 19/08/2008 в 06:23
источник пользователем

голоса
0

Этот вопрос на самом деле, кажется, о Java против C ++ производительности, а не ориентация объекта так, как работает на виртуальной машине с сборщика мусора и тому подобное.

В этом документе на Java против C ++ производительности может быть стоит прочитать.

Ответил 19/08/2008 в 04:36
источник пользователем

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