1
我正在写一个简短的脚本,但变得太拥挤了。东西必须做不少事情
class Stuff
attr_accessor :config # stores configuration
attr_accessor :dbh # stores database handle
attr_accessor :logger # general logger to use
def command_do_job_1
end
def command_do_job_2
end
def command_do_job...n
end
我知道,这不是一个正确的命令模式
自带关于这个问题,是每个命令需要
1. Configuration
1. Logger
1. Set of parameters
n. database handles
m. supporting methods/functions
好,现在我不开心,因为如果我将这些命令放入适当的对象中,那么我会创建大量的配置条目,参数和句柄,并且有很多支持方法/功能要重用命令!
东西也接缝真的旷课这样做是这样的:
class Stuff
attr_accessor :dbh, :logger, :config
end
class Command
attr_accessor :parent
def initialize(parent)
@parent = parent
end
def config
@parent.config
end
ad-nausiem for logger, dbh, other "joint" resources etc...
end
stuff = Stuff.new
cmd = Command.new stuff # so, I can carry the same logger, dbh, configs, etc..
所以,如果我打出来的“命令”到合适的对象和做是正确的,我必须做出某种“框架/服务“在和供应,记录仪,胸径,配置等执行命令..
经文
如果我把这些命令转换方法(而不是命令模式的话),我得到重用我的所有现有资源(配置,记录器,数据库句柄等),但是花费所有的时间这些功能和方法被混合在一个类中。
什么代码结构会给我一个更好的“资源/方法/功能”的用法,但也让我保持我的代码很好和简单?
这不是什么大不了的程序之一...
-daniel
我喜欢这个,ExecutionContext并没有解决所有的问题,但确实得到了很多! -daniel – Daniel 2010-09-01 21:18:43