Какие шаблоны дизайна я должен использовать для облегченной IDE? - PullRequest
2 голосов
/ 24 марта 2009

Я пишу облегченную IDE. Я выбрал Ruby + Gtk2 для этой задачи. У меня уже есть минимальный прототип для него, но сейчас большая часть кода находится в моем классе окна. Вскоре я начну работать над «реальной сделкой», но мне хотелось бы знать, какие шаблоны проектирования мне использовать. Я тоже планирую поддержку плагинов, чтобы приложение было расширяемым. Любые идеи приветствуются, но, пожалуйста, обсудите ваш вариант немного.

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

Ответы [ 6 ]

5 голосов
/ 24 марта 2009

Шаблоны проектирования - это решение общих проблем. Какие у вас проблемы? В консалтинговой работе мы часто видим, что когда кто-то заявляет: «Хорошо, вот моя идея. Какие шаблоны проектирования я могу применить?», Архитектура очень усложняется очень быстро.

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

Если в вашем классе окон много кода, это может подойти для вашего приложения, или вы можете захотеть взглянуть на что-то вроде свободного шаблона MVC. Как правило, для программирования с графическим интерфейсом жесткая MVC будет слишком строгой и потребует слишком много работы для «истинного» разделения интересов.

Существует много общих проблем, которые можно решить без шаблонов проектирования, и это не означает, что решение является правильным или неправильным. Например, поддержка плагинов очень часто предоставляется только путем предоставления интерфейса плагина или набора событий, на которые плагин может реагировать. Кроме того, вы можете посмотреть на шаблон адаптера.

1 голос
/ 25 марта 2009

Я не уверен, подходит ли это, но есть хорошая книга о разборе и построении IDE в C #. В книге обсуждаются шаблоны проектирования, используемые для разработки среды разработки Sharp. SharpDevelop - отличная среда разработки, и с открытым исходным кодом вы можете захотеть взглянуть на эту книгу & домашнюю страницу для Sharp Develop.

1 голос
/ 24 марта 2009

Просто чтобы прояснить возможное недоразумение: возможно, вы имеете в виду шаблоны пользовательского интерфейса (в отличие от шаблонов проектирования архитектуры программного обеспечения)? Мне кажется, ваш вопрос имеет больше смысла.

1 голос
/ 24 марта 2009

Кроме того, не забудьте проверить существующие IDE. Что они использовали?

Поскольку редактирование будет частью вашей IDE, вам следует проверить фактические редакторы с открытым исходным кодом.

1 голос
/ 24 марта 2009

Я не уверен, что это сильно поможет, но книга " Шаблоны проектирования в Ruby " рассказывает, ну, в общем, шаблоны проектирования в ruby ​​и то, как они могут отличаться от шаблонов проектирования Java. 1003 *

0 голосов
/ 26 мая 2012

Лучший способ разработать приложение с графическим интерфейсом ruby ​​- это использовать visualruby:

http://visualruby.net

Вы можете сделать свой графический интерфейс полностью отделенным от ваших классов. Например, если вы хотите создать графический интерфейс для следующего класса, вы можете сделать это легко, не мешая ему:

class DataObject

  def initialize(name, address, email, phone)
    @name = name
    @address = address
    @email = email
    @phone = phone
  end

end

Вы создаете GUI для этого класса, наследуя его и добавляя GUI:

class DataObjectGUI < DataObject

  include GladeGUI

  def show()
    load_glade(__FILE__)  #loads glade/DataObjectGUI.glade into @builder
    set_glade_all() #populates glade controls with insance variables from DataObject 
    show_window() 
  end   

end

Интерфейс GladeGUI содержит всю магию графического интерфейса. Метод load_glade () загрузит файл DataObject.glade. Это форма поляна, которая содержит имена Gtk :: EntryBoxes, имя, адрес, телефон и адрес электронной почты. Форма отобразится на экране со всеми заполненными полями.

Очевидно, что show_window () заставит окно появиться на экране. Окно уничтожения автоматически вызывается GladeGUI при нажатии кнопки «х».

Этот шаблон дизайна можно использовать для любого класса. Хороший пример - если у вас есть класс ActiveRecord, и вы хотите показать запись на экране. Вы просто подкласс, как указано выше, и это редактируемые и сохраняемые.

Этот пример взят из одного из примеров проектов на visualruby.net.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...