Хранить список инструкций - PullRequest
1 голос
/ 27 марта 2010

У меня проблема с дизайном. у меня есть класс Drawer, который вызывает серию методов типа своего рода кисти, и у меня есть предопределенные формы, которые я хочу нарисовать Каждая фигура использует список методов экземпляра из ящика. Я могу иметь более 1 объекта кисти.
Я хочу добавить пользовательские фигуры во время выполнения в экземпляре ящика, указав список методов новой фигуры.
Я создал метод класса для каждой предопределенной фигуры, который возвращает BlockClosure с инструкциями. Очевидно, я должен дать каждому BlockClosure объект кисти в качестве параметра. Я представляю коллекцию со всеми BlockClosures в каждом экземпляре класса Drawer. Может быть, я могу унаследовать SequenceableCollection и сделать коллекцию инструкций. Каждый элемент коллекции - это инструкция, и я даю объект кисти, когда создаю экземпляр этой новой коллекции. Я действительно не знаю лучший способ хранить эти шаги.
(Может быть, общая переменная?)

Ответы [ 2 ]

1 голос
/ 30 марта 2010

Может быть, вы можете использовать anActionSequence с некоторыми экземплярами MessageSend и поместить их в aDictionary в вашем Drawer (я бы предпочел «Painter» в качестве имени класса для этого класса, так как «Drawer» звучит очень похоже на часть мебели в моих ушах :)

Я не совсем уверен, чего именно вы хотите достичь.

0 голосов
/ 01 апреля 2010

Бонгиорно, Лучано! La domanda di Lei non é troppo chiara. Эх ... Я бы лучше использовал английский, мой итальянский немного беден.

Ваш вопрос не очень понятен. Это могло бы помочь, если бы я знал больше о контексте вашей проблемы. Какое программное обеспечение вы разрабатываете? Зачем вам много экземпляров класса Drawer (или Painter)?

Исходя из того, что я смог догадаться сейчас, я бы предположил, что вам нужен какой-то вариант шаблона Interpreter . Книга «Банда четырех» («Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения») является обязательной для прочтения для каждого программиста. Для Smalltalkers я настоятельно рекомендую «Компаньон Smalltalk для проектирования шаблонов» Шермана Альперта, Кайла Брауна и Бобби Вульфа в качестве ежедневного справочника.

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

...