use*_*565 4 refactoring smalltalk squeak pharo
我想使用重构浏览器以编程方式将实例变量添加到现有类:
| theClass className |
className := #MyClass.
theClass := (RBClass existingNamed: className)
model: (RBNamespace new classNamed: className; yourself);
yourself.
theClass addInstanceVariable: 'testIVar'
Run Code Online (Sandbox Code Playgroud)
但是这个类没有用新的实例变量修改,我错过了什么?
你忘了执行你的重构.试试这个
| model className theClass iVarName |
className := #MyClass.
iVarName := 'testIVar'.
model := RBNamespace new classNamed: className; yourself.
theClass := (RBClass existingNamed: className)
model: model;
yourself.
(RBAddInstanceVariableRefactoring
model: model
variable: iVarName
class: theClass) execute.
Run Code Online (Sandbox Code Playgroud)
您可能希望为新的实例变量添加authomatic加入方法(getter和setter)
(RBCreateAccessorsForVariableRefactoring
model: model
variable: iVarName
class: theClass
classVariable: false) execute
Run Code Online (Sandbox Code Playgroud)