sshjoy 2009-06-04 17:42
浏览 240
已采纳

Builder 模式中如何带参数问题?

http://www.iteye.com/topic/370266
中写到:

2.Builder
Ruby代码

  1. # 工头
  2. class Director
  3. def build_with builder
  4. acc = ''
  5. [:header, :body, :footer].each do |m|
  6. acc += builder.__send__ m if builder.respond_to? m
  7. end
  8. acc
  9. end
    1. end
    2. # 工人
    3. class HTMLBuilder
    4. def header; 'html builder';end
    5. def body; 'html builder' ;end
    6. def footer; '' ;end
    7. end
    8. class XMLBuilder
    9. def header; '<?xml version="1.0" charset="utf-8">';end
    10. def body; 'xml builder' ;end
    11. end
    12. d = Director.new
    13. puts(d.build_with HTMLBuilder.new)
    14. puts(d.build_with XMLBuilder.new)

这个模式中,我要给header(), body() 带参数怎么写Director类?
[b]问题补充:[/b]

def build_with buildercolor=red [/color]

acc = ''

[:header, :body, :footer].each do |m|

acc += builder.__send__ m,*args if builder.respond_to? m

end

acc

end

语法都不正确?
你跑过吗?
[img]/upload/attachment/112237/711aba2b-da48-3577-88d3-f926fb02600a.jpg[/img]

[b]问题补充:[/b]

您没有仔细看代码?
build_with( builder(*args) )
build_with 是方法。
builder 是一个类对象

  • 写回答

6条回答 默认 最新

  • xenocide 2009-06-09 20:50
    关注

    郁闷…… 关键字…… 再改
    [code="ruby"]
    def build_with(builder, *args)
    doe, re, me, fa, so, la, tea = args
    [
    builder.header(doe, re) ,
    builder.body(me, fa) ,
    (builder.footer(so, la, tea) rescue ''),
    ].join
    end
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥50 comsol稳态求解器 找不到解,奇异矩阵有1个空方程返回的解不收敛。没有返回所有参数步长;pid控制
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功