私は Smalltalk を学習し、Seaside でアプリケーションを開発しています。
アプリケーションの最初の部分は、いわゆる管理側です。この部分では、アプリケーションのユーザーが選択できるアイテムを定義/管理できます。定義されたすべてのアイテムは、すべてのユーザーに対して同じになります。そこで、sportsController というクラスを作成しました。
ここで定義されているシングルトン パターンを使用しました: smalltalk シングルトン パターン: インスタンス変数を初期化するにはどうすればよいですか? .
クラス側では、次のものがあります。
default
^ Default ifNil: [ Default := self new ]
私が持っているインスタンスで:
initialize
sports := OrderedCollection new.
と
sports
^ sports
ビューを呼び出すと、次のようになります。
manageSports
view := SportsAdminView new model: SportsController default
メソッド「manageSports」がコールバックとして呼び出されます。ビューを実行すると、次のコードが実行されます。
renderContentOn: html
html anchor
callback: [self addSport];
with: 'Add new sport'.
html
unorderedList: [self model sports
do: [:value | html
listItem: [self renderSport: value on: html]]].
これを実行すると #sports は nil です。したがって、MessageNotUnderstood 通知があります。だから私はおそらく何か間違ったことをしています。何?これを行うためのより良い方法はありますか?主な目的は、すべてのセッションで使用されるクラスを作成することです。
ところで、今のところ、私はまだ永続化を行っていません。「本当の」永続性については後で扱います。現時点では、アプリケーションの顧客側を開発するためにデータを追加できる必要があります。