我有设计问题。
我有一个抽屉类,它调用一系列类似刷子的方法,我有一个我想要绘制的预定义形状。每个形状都使用抽屉中的实例方法列表。我可以拥有多个刷子对象。
我想在抽屉实例中的运行时添加自定义形状,指定新形状的方法列表。
我为每个预定义的形状创建了一个类方法,该方法返回带有指令的BlockClosure。显然我必须给每个BlockClosure刷子对象作为参数。我想象一个抽象类的每个实例中包含所有BlockClosures的集合。
也许我可以继承SequenceableCollection并创建一个instruccion集合。集合中的每个元素都是一个指令,当我实例化这个新集合时,我会给出画笔对象。
我真的不知道存储这些步骤的最佳方法。
(也许是共享变量?)
答案 0 :(得分:1)
也许你可以在一些MessageSend实例中使用anActionSequence并将它们放在你的Drawer中的一个字典中(我更喜欢“Painter”作为该CLass的Classname,因为“Drawer”听起来很像我耳朵里的家具部分:)
我不确定你想要达到的目的。
答案 1 :(得分:0)
Bongiorno,Luciano! La domanda di Lei非ètroppochiara。 呃......我宁愿用英语,我的意大利语也差一点。
你的问题不是很清楚。如果我更了解您的问题的背景,它可能会有所帮助。 你在开发什么样的软件?为什么你需要很多'Drawer'(或Painter)类的实例?
基于我现在能够猜到的,我想你需要一些 Interpreter 模式的变体。 “四人帮”一书(设计模式:可重复使用的面向对象软件的元素)是每个程序员必读的。 对于Smalltalkers,我强烈推荐Sherman Alpert,Kyle Brown和Bobby Woolf的“The Design Patterns Smalltalk Companion”作为日常参考。
对不起,这是我可以就你的问题提出的所有建议,因为它目前正在制定中。