我有一個很長的實例變量列表,用於爲我想爲其生成代碼的類創建實例變量,而不是手動創建。該列表來自現有的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