4

自分で作成したライブラリとコンポーネント(主に学習体験)のみを使用してMVCアプリケーションフレームワークを作成していますが、各種類のライブラリを互いに分離する方法がよくわかりません。

私のアプリケーションをCatと呼びます。

Dogというライブラリを作成しているとしましょう。これは、Zendのようなもので、さまざまなタスクを実行するさまざまなコンポーネント(データベースクラス、DAL、特定のURLから選択するコントローラーを特定するためのルーターなど)でいっぱいです。ルート/ライブラリ/ディレクトリに配置されます。

また、アプリケーション固有のアプリライブラリを作成します(アプリの開始と構成に役立つFrontControllerやApplicationなどのクラスが含まれている場合があります)。これはroot/app /library/にあります

このアプリケーションと他のアプリケーションの両方でDogライブラリを使用し、Catから独立していることを願っています。これにより、他の多くのアプリケーションで使用できるようになります。

私のCatアプリケーションで、新しいデータベースオブジェクトを作成するとします。私は書くべきですか:

$database = new Dog_Database();

または、Dog_Databaseクラスを純粋に拡張するCat_Databaseクラスを使用する方がよいでしょうか。つまり、後で必要に応じて代わりにFerret_Databaseを拡張するようにCat_Databaseに指示できます...

主な質問は、アプリケーションが共有ライブラリから直接物事を呼び出すべきか、それとも必要に応じて共有ライブラリから拡張されるアプリ固有のライブラリクラスを呼び出すべきかということだと思います。

4

1 に答える 1

1

自分の質問に少し答えたと思います。あなたは犬が猫から独立していることを望んでいると言います。つまり、私にとっては、2つの間に多くの依存性注入を使用し、継承や直接呼び出しを多く使用しないことを意味します。フレームワーク以外の場所でアプリライブラリを再利用する場合は、アプリライブラリにフレームワークからクラスを拡張させることはできません。

このような幅広い質問に詳細なアドバイスを与えるのは難しいです。おそらく、これらの概念のいくつかはあなたを助けるでしょう。

依存性注入

インターフェイスへのプログラミング

于 2010-06-19T10:16:54.553 に答える