5

手作業ではなく、コードを生成したいクラス用に作成するインスタンス変数の長いリストがあります。リストは、既存の SQL データベースから取得されます。私の意図は、最初に Smalltalk を使用して純粋なオブジェクト指向の方法ですべてを実行し、さらに学習するにつれて、データをデータベースに保存して、そこから直接作業することです。

それらを生成してクラス定義に追加するメソッドに名前のリストを渡す方法はありますか?

実際、Smalltalk でクラス定義を動的に追加または変更する方法はありますか? 私は、ベストプラクティスのアプローチを知りたいと思っています。

更新: 私が念頭に置いているのは、インスタンス変数のリストを、それらを自動的に作成するメソッドに渡すようなものです。

それはもっと似ています:

addVariablesAndAccessors className: MyClass variablesList: ('aaaa', 'bbbb', 'cccc')

その結果、への呼び出しが発生します

AddVariables className: MyClass variableList: ('aaaa' 'bbbb' cccc')

generateAccessors className: MyClass variableList: ('aaaa' 'bbbb' cccc')

4

3 に答える 3

9

リファクタリング ツールがロードされた OmniBrowser で、クラスを選択し、コンテキスト メニューRefactor class > Accessorsで選択します。

または、1 つの変数のアクセサーのみを作成する場合は、[インスタンス/クラス変数のリファクタリング] > [アクセサー] を選択し、アクセスする変数を選択します。

于 2013-01-09T12:15:40.590 に答える
3

Squeak でBrowser、クラスの a を開きます。クラスリストのクラス名を「右クリック」すると(ボタンの色を思い出せません)、標準のコンテキストメニューが表示されます-「フルブラウズ(b)」など。「more...」を選択すると、「create inst var accessors」が表示されます。それを選択すると、インスタンス変数の基本的なゲッターとセッターが得られます。

于 2013-01-09T12:28:09.330 に答える