我有一个很长的实例变量列表,用于为我想为其生成代码的类创建实例变量,而不是手动创建。该列表来自现有的SQL数据库。我的意图是先用Smalltalk以纯面向对象的方式完成所有工作,并且随着我学习更多,将数据保存回数据库并直接使用它。如何为Pharo或Squeak中的课程自动生成getter/setter代码?
是否有方法将名称列表传递给将生成它们并将它们添加到类定义的方法?
实际上有没有一种在Smalltalk中动态添加或修改类定义的方法?我怀疑必须和我想知道最佳实践方法。
更新:我想到的更像是将实例变量的列表传递给将自动创建它们的方法。
它更像:
addVariablesAndAccessors className: MyClass variablesList: ('aaaa', 'bbbb', 'cccc')
然后这将导致一个呼叫到
AddVariables className: MyClass variableList: ('aaaa' 'bbbb' cccc')
和
generateAccessors className: MyClass variableList: ('aaaa' 'bbbb' cccc')
我将如何从顶层做到这一点,以便我可以使类成为调用函数即参数。你如何定义一个将类作为参数的方法?该方法附加了什么对象? – vfclists
@vfclists请看看我的答案的更新;-) – Leo
我发现'Smalltalk at:#ClassName'方法,但你的方法更优雅。关于类附加最自然的方法?可以安全走多远? – vfclists