3

私は最初のbackbone.marionetteアプリを構築している最中であり、混乱することがいくつかあります。

TodoMVCのbackbone.marionetteバージョンには、アプリの作業を実行する2つの異なるモジュールがあるようです。

最初にBackbone.Marionette.ApplicationのインスタンスであるTodoMVCがあり、次にコントローラーとルーターを保持するためのコンテナーにすぎないように見えるTodoMVC.TodoListがあります。

コントローラオブジェクトが単にAppオブジェクトに追加されないのはなぜですか?

私を混乱させるもう1つのこと:このようなstackoverflowで説明した他のマリオネットアプリでは、addInitializer()がアプリオブジェクトで呼び出されますが、TodoMVCアプリケーションではaddInitializer()がtodolistオブジェクトで呼び出されます。

これは、コントローラーオブジェクトが必要なアプリに固有ですか?

また、TodoMVC(アプリ)とTodolist(コントローラーコンテナー?)の両方がベースアプリであることを意味する名前を保持しているため、名前がかなりわかりにくいと思います。Todolistモジュールをより意味的にTodoControllerと呼ぶことができますか?

4

1 に答える 1

2

コントローラオブジェクトが単にAppオブジェクトに追加されないのはなぜですか?

これは、単一責任の原則に関連するモジュール設計の選択です。TodoMVCはトップレベルのアプリケーションであり、TodoListはアプリケーション内のモジュール(またはサブアプリケーション)であり、どちらも独自の庭になりがちです。これにより、トップレベルのアプリコードを増やすことなく、任意の数のモジュールを作成できます。

他のマリオネットアプリでは...addInitializer()はアプリオブジェクトで呼び出されますが、TodoMVCアプリケーションではaddInitializer()はtodolistオブジェクトで呼び出されます

これは、 Application.Modulesの慣例の問題だと思います。TodoMVCアプリは初期化コードを必要としないため、初期化関数を追加しません。

于 2012-11-13T07:57:04.473 に答える